zoukankan      html  css  js  c++  java
  • C++ tuple元组

    tuple元组

    tuple是一个元组容器,可以用于函数返回多个值, 一个tuple元组可以有任意数量的成员
    tuple的两种初始化方式:

    tuple<int, int> t1(1, 2);
    tuple<int, int> t2{1, 2};
    

    make_tuple用于生成tuple对象,和pair和make_pire类似:

    auto t3 = make_tuple(1, 2);
    

    tuple的成员数量没有限制
    访问成员使用一个get的标准库函数模板,为了指定一个显示模板,必须指定想要访问的第几个成员。

    tuple<string, string, int> item = make_tuple("Hello", "World", 12345);
    auto val = get<0>(item)
    

    尖括号中表示的是下标数,从0开始。

    获得成员数量和类型

    使用两个辅助类模板查询tuple元组的类型和变量。

    typedef decltype(item) trans;   //trans是item的类型
    size_t sz = tuple_size<trans>::value;   //返回trans类型对象中成员的数量
    tuple_element<1, trans>::type cnt = get<1>(item);   //cnt是int类型
    

    tuple使用实例

    tuple<string, int> giveName(void)
    {
        tuple<string, int> t("Hello", 123);
        return t;
    }
    
    int main(int argc, char** argv)
    {
        //函数返回tuple元组容器
        auto a = giveName();
        cout << get<0>(a) << "-" << get<1>(a) << endl;
    
        //得到元组得个数
        tuple<int, double, string> t(64, 1.23, "Hello");
        tuple<string, string, int> t1 = make_tuple("Hello", "World", 12345);
    
        //得到t元组元素得个数
        size_t num = tuple_size<decltype(t)>::value;    
        cout << num << endl;    //3
    
        //获得t元组第二个元素得值
        tuple_element<1, decltype(t)>::type val = get<1>(t);
        cout << "val = " << val << endl;
    
        //比较
        tuple<int, int> t2(24, 48);
        tuple<double, double> t3(28.0, 56.0);
        bool b = (t2 < t3);
        cout << "b = " << b << endl;
    
        return 0;
    }
    
  • 相关阅读:
    迁移Veil:手工打造Windows下编译的免杀Payload
    设置快速的debian源的方法:
    最新织梦的一个延时注入
    关于web后门权限防删的一个新思路
    安全狗两个中危提权+NET提权
    python抓取中文网页乱码通用解决方法
    SSRF漏洞的挖掘经验
    Hive中自定义Map/Reduce示例 In Java
    Hive学习之Locking
    Cloudera Manager及CDH最新版本安装全程记录
  • 原文地址:https://www.cnblogs.com/WindSun/p/13670330.html
Copyright © 2011-2022 走看看