1. 程式人生 > >C++ pair用法

C++ pair用法

 pair 預設對first升序,當first相同時對second升序;

類模板:template <class T1, class T2> struct pair

引數:T1是第一個值的資料型別,T2是第二個值的資料型別。

功能:pair將一對值組合成一個值,這一對值可以具有不同的資料型別(T1和T2),兩個值可以分別用pair的兩個公有函式first和second訪問。

具體用法:

1.定義(構造):

1     pair<int, double> p1;  //使用預設建構函式
2     pair<int, double> p2(1, 2.4);  //用給定值初始化
3     pair<int, double> p3(p2);  //拷貝建構函式

2.訪問兩個元素(通過firstsecond):

1     pair<int, double> p1;  //使用預設建構函式
2     p1.first = 1;
3     p1.second = 2.5;
4     cout << p1.first << ' ' << p1.second << endl;

輸出結果:1 2.5

3.賦值operator =

(1)利用make_pair

1     pair<int, double> p1;
2     p1 = make_pair(1, 1.2);

(2)變數間賦值:

    pair<int, double> p1(1, 1.2);
    pair<int, double> p2 = p1;

可以用cmp陣列改;

程式碼:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<algorithm>
 6 #define mem(x,y) memset(x,y,sizeof(x))
 7
using namespace std; 8 typedef long long LL; 9 const int INF=0x3f3f3f3f; 10 pair<int,int>pa[100]; 11 int cmp(pair<int,int>a,pair<int,int>b){ 12 if(a.first!=b.first)return a.first>b.first; 13 else return a.second<b.second; 14 } 15 int main(){ 16 int a,b; 17 for(int i=0;i<5;i++)scanf("%d%d",&a,&b),pa[i]=make_pair(a,b); 18 sort(pa,pa+5,cmp); 19 for(int i=0;i<5;i++)printf("%d %d\n",pa[i].first,pa[i].second); 20 return 0; 21 }

相關推薦

用法學習】C++ pair用法及使用sort函式對pair資料進行排序

 pair 預設對first升序,當first相同時對second升序; 類模板:template <class T1, class T2> struct pair 引數:T1是第一個值的資料型別,T2是第二個值的資料型別。 功能:pair將一對值組

C++ pair用法

 pair 預設對first升序,當first相同時對second升序; 類模板:template <class T1, class T2> struct pair 引數:T1是第一個值的資料型別,T2是第二個值的資料型別。 功能:pair將一對值組合成一個值,這一對值可以具有不同的資料型別

c++ pair 用法詳解

標準庫型別--pair型別定義在utility標頭檔案中定義 1、pair的建立和初始化 pair包含兩個數值,與容器一樣,pair也是一種模板型別。但是又與之前介紹的容器不同,在建立pair物件時,必須提供兩個型別名,兩個對應的型別名的型別不必相同 pair<string,string>a

C++ pair對組的用法

C++中的pair對組的本質是一個struct型別的模板,所以它具有struct的特徵,就是可以把不同的資料據型別合成一個結構體型別,不同的是pair只能合成兩種資料型別。 下面是對組的用法,用程式註

C++ pair用法例項詳解(結構體模板應用初探)

1 pair的應用(結構體模板)pair是將2個數據組合成一個數據,當需要這樣的需求時就可以使用pair,如stl中的map就是將key和value放在一起來儲存。另一個應用是,當一個函式需要返回2個數據的時候,可以選擇pair。標頭檔案:#include<utilit

C++ pair用法

 pair的應用:     1. pair是將2個數據組合成一個數據,當需要這樣的需求時就可以使用pair,如stl中的map就是將key和value放在一起來儲存。     2. 另一個應用是,

C++ pair(對組)用法

類模板:template <class T1, class T2> struct pair 引數:T1是第一個值的資料型別,T2是第二個值的資料型別。 功能:pair將一對值組合成一個值,這一對值可以具有不同的資料型別(T1和T2),兩個值可以分別用pair的兩

C++中pair用法

類模板:template <class T1, class T2> struct pair 引數:T1是第一個值的資料型別,T2是第二個值的資料型別。 功能:pair將一對值組合成一個值,這一對值可以具有不同的資料型別(T1和T2),兩個值可以分別用pai

C++ pair用法

1 pair的應用 pair是將2個數據組合成一個數據,當需要這樣的需求時就可以使用pair,如stl中的map就是將key和value放在一起來儲存。另一個應用是,當一個函式需要返回2個數據的時候,可以選擇pair。 pair的實現是一個結構體,主要的兩個成員變數是f

C# ListView用法詳解

ont 結束 server 發生 匹配 鼠標 之前 小圖標 order 一、ListView類 1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有意義

[C#] SerialPort用法

debug 嵌入 microsoft mic 參數設置 usb 輸出 代碼 搜索 如今各種高速接口層出不窮,如USB2.0、USB3.0、USB3.1以及Thunderbold等等,但是簡單低速串行接口依然在嵌入式軟硬件開發中作為debug信息輸出所采用。本文將介紹如何在P

C# task用法

我們 font actor oca 調度 研究 等待 static ken C# Task 的用法 其實Task跟線程池ThreadPool的功能類似,不過寫起來更為簡單,直觀。代碼更簡潔了,使用Task來進行操作。可以跟線程一樣可以輕松的對執行的方法進行控制。 順便提

C# ListView用法詳解(轉)

分組 創建 cti 排列 checkbox 定義 com 程序 erl 一、ListView類 1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有

C# ExecuteNonQuery用法

clas man pub class int32 bject code tex oid using System; using System.Data; using System.Text; using System.Windows.Forms; using System

C# list用法

強制 name itl 對象 檢查 als range cat foreach C# list介紹 一、LIST概述 所屬命名空間:System.Collections.Generic public class List<T> : IList&

c/c++ explicit用法

自動 col 不能 程序 自己 c++ cnblogs xpl clas 試想一個類,它的構造函數只有一個參數, 1 class test 2 { 3 test( int a ) {}5 } 這時我想用一個int b = 10初始化它,這當然沒問題,但如果你用一

C++ const用法小結 (歡迎大家拍磚)

固定 ant oid 幹什麽 pause 參數傳遞 clas 自定義類型 期望 C++const 關鍵字小結 const 是constant的縮寫,本意是不變的,不易改變的意思。 const 在C++中是用來修飾內置類型變量,自定義對象,成員函數,返回值,函數

C++ const用法 盡可能使用const

con {} code 值傳遞 語義 point main tint ostream  C++ const 允許指定一個語義約束,編譯器會強制實施這個約束,允許程序員告訴編譯器某值是保持不變的。如果在編程中確實有某個值保持不變,就應該明確使用const,這樣可以獲得編譯器的

C# CHECKEDLISTBOX用法總結

klist select con oid eve 個數 box row ESS 一般認為:foreach (object obj in checkedListBox1.SelectedItems)即可遍歷選中的值。 其實這裏遍歷的只是高亮的值並不是打勾的值。遍歷打勾的

C# Parallel用法

asp fun rgs ons test ntb {0} 元素 應用 1、Parallel.Invoke 主要用於任務的並行  這個函數的功能和Task有些相似,就是並發執行一系列任務,然後等待所有完成。和Task比起來,省略了Task.WaitAll這一步,自然也缺少了T