zoukankan      html  css  js  c++  java
  • c++11——tuple元组

     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;
    }
    
    +
  • 相关阅读:
    shared_ptr weak_ptr boost 内存管理
    _vimrc win7 gvim
    qt 拖放
    数学小魔术 斐波那契数列
    qt4 程序 移植到 qt5
    (转)字符串匹配算法总结
    c++11
    BM 字符串匹配
    编译qt5 demo
    c++ 类库 学习资源
  • 原文地址:https://www.cnblogs.com/gtarcoder/p/4803318.html
Copyright © 2011-2022 走看看