pair 和make_pair比較,以及在map中的用法
Pair和make_pair型別概述
1.pair是一種模板型別,其中包含兩個資料值,兩個資料的型別可以不同.
eg:pair <int,string>a;
表示a中有兩個型別,比如第一個元素可以是int型的,第二個元素是string型別的,如果建立pair的時候沒有對其進行初始化,則呼叫預設建構函式對其初始化。
pair a("James", "Joy");
由於pair型別的使用比較繁瑣,因為如果要定義多個形同的pair型別的時候,可以時候typedef簡化宣告:
typedef pair author;
author pro("May", "Lily");
author joye("James", "Joyce");
Pair物件的操作
對於pair類,由於它只有兩個元素,分別名為first和second,因此直接使用普通的點操作符即可訪問其成員pair a("Lily", "Poly");//使用‘.’訪問,賦值。
a.first="liming";
string name;
name = pair.second;
cout<<pair.first<<endl;
2.make_pair型別
可以使用make_pair對已存在的兩個資料構造一個新的pair型別:
eg: pair<string,int>("sn001", 12.5); make_pair("sn001", 12.5); 兩者效果一樣。#include<iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
map<string,double> m;
m["jack"]=98.3;
m["bake"]=98.9;
m["ke"]=1.3;
//m.erase("ke");
m.insert(pair<string,double>("abb",85.23232));
m.insert(make_pair("acc",80.3));
map<string ,double>::iterator pos;
for(pos=m.begin();pos!=m.end();pos++)
cout<<pos->first<<": "<<pos->second<<endl;
return 0;
}