码迷,mamicode.com
首页 > 编程语言 > 详细

c++11——tuple元组

时间:2015-09-12 18:52:33      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

 tuple是一个固定大小的不同类型值的集合,是泛化的 std::pair。可以当做一通用的结构体使用,不需要创建结构体而又获取结构体的特征,在某些情况下可以取代结构体,使程序简洁、直观。 
创建tuple

    1. make_tupe
    tuple<const char*, int> tp = make_tuple(sendPack, nSendSize);//构造tuple
    2. tie 函数(创建一个元组的左值引用)
    auto tp = std::tie(1, "aa", 2.2); //tp 实际类型为 std::tuple<int&, string&, int&>

 

解析tuple

    1. get<x>()
    const char* data = tp.get<0>();
    int a = tp.get<1>();
    2. tie
    int x, y;
    string a;
    std::tie(x, a, y) = tp; //则自动赋值到三个变量
    也可以只解析第三个值:
    std::tie(std::ignore, std::ignore, y) = tp; //std::ignore为占位符

 

连接tuple

int main(){
    std::tuple<int, std::string, float> t1(10, "test", 3.14);
    int n = 7;
    auto t2 = std::tuple_cat(t1, std::make_pair("Foo", "nar"), t1, std::tie(n));
    n = 10;
    //t2 = {10, "test", 3.14, "Foo", "nar", 10}; //n为10,因为tie中存放的为引用
    return 0;
}

 

+

c++11——tuple元组

标签:

原文地址:http://www.cnblogs.com/gtarcoder/p/4803318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!