//顺序表内部成员是一个pair类型的对象
vector<pair<void*, size_t>> v;
//利用make_pair()创建了一个pair类型的对象
v.push_back(make_pair(Deafult_Malloc_Template<false, 0>::Allocate(129), 129));
1 make_pair创建的是一个pair对象。
2 pair是单个数据对的操作,pair是一struct类型,有两个成员变量,通过first,second来访问,用的是“.”访问,
3 make_pair是一个函数,pair是一个类
pair使用例子:
make_pair使用例子:
总结:
pair:
C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象 。pair可以将两个不同类型的值合并成一个结构体。 pair被定义为struct,因此可直接存取pair中的个别值.当两个pairs互相比较时, 第一个元素正具有较高的优先级.我们可以使用pair的构造函数也可以使用make_pair来生成我们需要的pair。
make_pair:
一般make_pair都使用在需要pair做参数的位置,可以直接调用make_pair生成pair对象很方便 。 另一个使用的方面就是pair可以接受隐式的类型转换,这样可以获得更高的灵活度,但也会带来一些问题:
std::pair < int, float> foo(1, 1.1);
std::make_pair(1, 1.1);
其中第一个的second变量是float类型,而make_pair函数会将second变量都转换成double类型。