-
使用时需要引入头文件 #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 }