目录
1、pair
将两个值视为一个单元。
定义于<uyility>。
不支持复制构造的类不能使用pair。
2、用法
pair<T1,T2> p; Default构造
pair<T1,T2> p(vall,val2); 元素类型为T1,T2值为vall,val2
pair<T1,T2> p(rv1,rv2); 以rv1,rv2进行搬移式(move initialized)初始化
pair<T1,T2> p(piecewise_construct,t1,t2);元素类型分别为tuple T1和T2,以tuple t1和t2的元素为初值
pair<T1,T2> p(p2); Copy构造
pair<T1,T2> p(rv); Move构造
p = p2; 将p2赋值给p,允许隐式类型转换
p = rv; move赋值
p.first; 取第一个值
p.second; 取第二个值
get<0>(p); 等于P.first
get<1>(p); P.second
p1 == p2; 等价于p1.first == p2.first&&p2.second == p1.second
p1 != p2;
p1 < p2;
p1 > p2;
p1 <= p2;
p1 >= p2;
p1.swap(p2); 互换
swap(p1,p2); 互换
make_pair<val1,val2); 返回pair,带有类型和数值
3、测试
#include <iostream>
#include <utility>
using namespace std;
int main()
{
//创建
pair<int, char> p;
pair<int, char> p1(0, 'a');
int a = 1; char ch = 'b';
pair<int, char> p2(move(a), move(ch));
pair<int, char> p3(p1);
pair<int, char> p4(move(p3));
p3 = make_pair(3, 'c');
p = p1;
p = move(p4);
//取值
cout << p.first << ends << p.second << endl;
cout << get<0>(p) << ends << get<1>(p) << endl;
//比较...
//互换...
system("pause");
}