c++笔记——tuple

在c++ 11标准库中,加入了std::tie,在c++ 14中改进,方便使用。 其与tuple关系密切, 主要目的是方便地使用tuple

std::tie

一般std::tie有2个作用:

  • 创建一个std::tuple;
  • 解包标准库中的一些集合类,简化访问方法。

元组 std::tuple

元组tuple,有人认为是std::pair扩展。pair只能把2个数据打包,而tuple可以打包更多的数据。tuple的数据类型也可以是不相同的。“快速而随意的”数据结构。

void initTuple(){
    //默认初始化3个成员为0
    tuple<size_t, size_t, size_t> threeD;

    //直接初始化
    tuple<string, vector<double>, int, list<int> > someVal("constants", {3.12, 2.7}, 42, {0, 1, 3, 4});

    //赋值初始化
    tuple<size_t, size_t, size_t> threeD1 = {1, 2, 3};

    //make_tuple
    auto item = make_tuple("0-999-78345-x", 3,  20.00);

    //访问tuple的成员
    auto book = get<0>(item);
    auto cnt = get<1>(item);
    auto price = get<2>(item);

    cout << "book : " << book << endl;
    cout << "cnt : " << cnt << endl;
    cout << "price : " << price << endl;
}

 

posted @ 2023-04-10 18:39  水水滴答  阅读(27)  评论(0编辑  收藏  举报