zoukankan      html  css  js  c++  java
  • 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
    }
  • 相关阅读:
    文本文件关键字替换(Java)
    Java分页需求
    四、MyBatis主配置文件
    三、动态SQL语句
    二、SQL语句映射文件(2)增删改查、参数、缓存
    二、SQL语句映射文件(1)resultMap
    一、MyBatis简介与配置MyBatis+Spring+MySql
    一个SpringMVC简单Demo中出现的错误
    linux系统如何将系统中的文件名改为英文?
    spring测试
  • 原文地址:https://www.cnblogs.com/tongyishu/p/13334929.html
Copyright © 2011-2022 走看看