std::pair是一个类模板
一、构造
此构造函数比较特殊,其他构造函数都很简单无需说明。std::piecewise_construct_t
是用于在接收两个tuple参数的不同函数间消歧义的空类标签类型。std::piecewise_construct_t官方文档
template< class... Args1, class... Args2 >
pair( std::piecewise_construct_t,
std::tuple<Args1...> first_args,
std::tuple<Args2...> second_args );
std::make_pair
创建一个pair对象
二、访问
-
std::get获取pair的一个元素
-
first访问pair的首个元素
-
second访问pair的第二个元素
-
std::tuple_element获取pair的元素类型
三、其他
std::pair<T,bool>
和std::option
的联系
示例
#include <iostream>
int main()
{
std::pair p1(1, 2.2f);
std::pair<int, char> p2;
p2 = std::make_pair(2, 'c');
auto IntP1 = std::make_pair<int, int>(2, 3);
auto IntP2 = std::make_pair(3, 4); //可以自动识别类型
p2.first; // 访问p2的首个元素
p2.second;
auto p2First = std::get<0>(p2); //访问p2的首个元素<>内的数字指示访问第几个元素
typedef std::tuple_element<1, decltype(p2)>::type TypeChar;
TypeChar c; //c的类型为char
return 0;
}
std::apply将pair或tuple的元素作为函数对象的参数。(详见tuple的用法)