• c++ tuple


    使用场景
    • 使用时需要引入头文件 #include <tuple>

    • 减少许多简单结构体的定义

    • 用于函数返回多个返回值

    tuple辅助类与方法
    • std::make_tuple:用来创建一个tuple对象

    • std::get<>():获取tuple指定位置的值

    • tuple_size<>::value:获取tuple的大小

    • ignore:用于tie解包的占位符

    tie功能
    • 将多个普通成员临时绑定成一个tuple,多用于解包结构体的比较
    tuple与pair的区别
    • tuple是pair的一个扩展,pair只能存储两个元素,tuple可以存储多个
    示例
    int main()
    {
        using Info = std::tuple<std::string, std::string, int>; // 类型定义, 等价于 struct {std::string, std::string, int};
        Info tup1 = std::make_tuple("t00512600", "tongyishu", 24); // make_tuple 的使用
        std::cout << "get<0>() : " << std::get<0>(tup1) << std::endl; // get<>() 的使用
        std::cout << "get<1>() : " << std::get<1>(tup1) << std::endl; // get<>() 的使用
        std::cout << "get<2>() : " << std::get<2>(tup1) << std::endl; // get<>() 的使用
    
        std::cout << "size : " << std::tuple_size<Info>::value << std::endl; // tuple_size 的使用
    
        int age;
        std::string id;
        std::string name;
        std::tie(id, std::ignore, age) = tup1; // tie 和 ingore 的使用, 临时将 id, name, age 绑定成一个 tuple 的类型
        std::cout << "id : " << id << std::endl;
        std::cout << "name : " << name << std::endl;
        std::cout << "age : " << age << std::endl;
        // 输出结果如下:
        // get<0>() : t00512600
        // get<1>() : tongyishu
        // get<2>() : 24
        // size : 3
        // id : t00512600
        // name :
        // age : 24
    }
  • 相关阅读:
    qt解决中文乱码
    二维数组及指针分析
    pyhon Django框架
    java回调(钩子函数)
    java.util.concurrent java并发工具包
    CountDownLatch 计数器
    报表 图形接口查询 (年月周日)
    pg 日期函数
    linux 执行脚本报错 No such file or directory
    python 处理数据常用操作
  • 原文地址:https://www.cnblogs.com/tongyishu/p/13334929.html
Copyright © 2020-2023  润新知