http://blog.csdn.net/calvin_zcx/article/details/6072286
http://www.linuxidc.com/Linux/2014-10/107621.htm
头文件 : <utility>
pair 的 <、>、<=、>=、==、!= 的比较规则 : 先比较first,first相等时再比较second (可以通过重载这几个运算符来重新指定自己的比较逻辑)
pair的初始化: pair<string, int> prt; pair<string, int>pr2("hello", 5); pair<string, int> pr3 = make_pair<string, int>("haha", 4); pair<stirng, int>pr4 = make_pair("lll",3);
pair和vector交互: pair<string, vector<int>> student;
pair访问元素: pair<int, int> a(1,2);
cout<<"first="<<a.first<<"------"<<"second="<<a.second;
pair使用typedef技巧: typedef pair<string, int> nameInfo;
nameInfo info("lucy", 4);
pair与标准输入流: pair<string, string> input;
while(cin>>input.first>>input.second){ cout<<"info is"<<input.first<<":"<<input.second<<endl;}
(ps : 直接使用cin的小技巧 abc[enter]d---->info is abc:d)
pair的隐式转换: pair可以接受隐式的类型转换,这样可以获得更高的灵活度。但是这样会出现如下问题:例如有如下两个定义:
pair<int, float>(1, 1.1);
make_pair(1, 1.1); make_pair函数会将second变量都转换成double类型.这个问题在编程是需要引起注意。
make_pair<int, float>(1,1.1); 如果想指定是float的可以像这样指明类型.
vector套用pair的一个小例子: