std::pair
template <class T1, class T2> struct pair;
此类将一对值(可能是不同类型)结合在一起(T1 和 T2)。可以通过其公共成员访问各个值
Member variables(成员变量)
first: pair中的第一个值
second: pair中的第二个值
相关函数
swap()
交换两个pari 的内容
#include <iostream>
using namespace std;
int main()
{
std::pair<int,char> f1(10,'a');
std::pair<int,char> f2(12,'b');
f1.swap(f2);
cout<<f1.first<<endl;
cout<<f1.second<<endl;
return 0;
}
make_pair(T1 x,T2 y)
构造一个 pair对象,其第一个元素设置为x,第二个元素设置为y。
#include <utility> // std::pair
#include <iostream> // std::cout
int main () {
std::pair <int,int> foo;
std::pair <int,int> bar;
foo = std::make_pair (10,20);
bar = std::make_pair (10.5,'A');
std::cout << "foo: " << foo.first << ", " << foo.second << '\n';
std::cout << "bar: " << bar.first << ", " << bar.second << '\n';
return 0;
}
排序
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main()
{
std::vector<pair<int,int>> p;
p.push_back(make_pair(2,1));
p.push_back(make_pair(100,2));
p.push_back(make_pair(21,3));
p.push_back(make_pair(12,4));
sort(p.begin(),p.end(),greater<pair<int,int>>());
for(int i = 0;i<p.size();i++)
{
cout<<p[i].first<<","<<p[i].second<<endl;
}
return 0;
}
可以看出默认是按照 first 排序的。