C++ class pair

目录

1、pair

2、用法

3、测试


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");
}
发布了44 篇原创文章 · 获赞 54 · 访问量 7035

猜你喜欢

转载自blog.csdn.net/Liu_Xiao_Ming/article/details/104169739
今日推荐