std::tuple

默认分类 · 2024-05-02 · 36 人浏览

std::tuple是C++11引入的一个新特性,类似于pair,但每个pair都只能有两个成员,而tuple可以存储多个不同数据类型数据成员。

定义

示例

tuple<int, double, string> t{1, 1.1, "tuple"};

访问元素

在C++17之前,可以使用std::get来访问元组中的各个元素

  1. std::get来访问
    示例

    int first = get<0>(t);
    double second= get<1>(t);
    string third= get<2>(t);

    在C++17及以后可以使用auto关键字

  2. 使用auto进行解包
    示例

    auto [first , second, third] = t;

    对于我们不在意的数据还可以使用占位符 '_'
    示例

    auto [_, second, third] = t;
  3. 使用是std::tie进行解包
    示例

    int first;
    double second;
    string third;
    tie(first, second, third) = t;

    不在意的数据还可以使用ignore作为占位符

    tie(first, ignore, third) = t;
Theme Jasmine by Kent Liao