std::pair

std::pair是一个类模板

中文标准库: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::tuple

std::apply将pair或tuple的元素作为函数对象的参数。(详见tuple的用法)

posted @ 2020-11-30 11:15  滴哒哒哒  阅读(159)  评论(0编辑  收藏  举报