C++ 新特性 | C++ 11 | tuple 模版
文章目录
- 一、`tuple` 模版
- 1、定义
- 2、特点
- 3、常用操作
一、tuple
模版
1、定义
std::tuple
是在 C++11 版本中引入的。它是 C++ 标准库中的一个类模板,用于创建一个固定大小的、可以包含不同类型元素的集合。std::tuple
提供了一种灵活的方式来组合多个不同类型的值,而无需定义一个新的结构体或类。这使得它在需要返回多个值或传递多个参数时非常有用。
2、特点
- 大小固定,可以包含不同类型的元素。
- 一旦
tuple
被创建,其内部的元素类型就固定了,不能改变。 tuple
元素类型不能修改,但是,可以修改元素值。
3、常用操作
-
创建
tuple
std::tuple<int, double> t1(10, 20.5); std::tuple<int, double> t2 = std::make_tuple(30, 40.5);
-
访问
tuple
元素使用
std::get<index>()
访问元素,例如:// 创建一个包含 int, double 和 std::string 的 tuple std::tuple<int, double, std::string> myTuple(1, 3.14, "Hello, Tuple!"); // 使用 std::get<index>() 访问 tuple 中的元素 std::cout << "Integer: " << std::get<0>(myTuple) << std::endl; std::cout << "Double: " << std::get<1>(myTuple) << std::endl; std::cout << "String: " << std::get<2>(myTuple) << std::endl;
-
获取元素个数
要获取
std::tuple
中元素的个数,可以使用std::tuple_size
模板结构。例如:#include <iostream> #include <tuple> int main() { // 创建一个包含 int, double 和 std::string 的 tuple std::tuple<int, double, std::string> myTuple; // 获取 tuple 的元素个数 constexpr std::size_t tupleSize = std::tuple_size<decltype(myTuple)>::value; // 输出元素个数 std::cout << "The number of elements in the tuple is: " << tupleSize << std::endl; return 0; }
-
修改元素值
std::tuple
存储的元素是可以被修改的。一旦你创建了一个std::tuple
并初始化了它的元素,你可以通过std::get<index>()
函数模板来获取到元素的引用,然后通过这个引用来修改元素的值。例如:#include <iostream> #include <tuple> int main() { // 创建一个包含 int, double 和 std::string 的 tuple std::tuple<int, double, std::string> myTuple(1, 3.14, "Hello, Tuple!"); // 修改 tuple 中的元素 std::get<0>(myTuple) = 42; // 修改第一个元素为 42 std::get<1>(myTuple) = 2.71828; // 修改第二个元素为 2.71828 std::get<2>(myTuple) = "Goodbye, Tuple!"; // 修改第三个元素为 "Goodbye, Tuple!" // 输出修改后的元素值 std::cout << "Modified Tuple:" << std::endl; std::cout << "Integer: " << std::get<0>(myTuple) << std::endl; std::cout << "Double: " << std::get<1>(myTuple) << std::endl; std::cout << "String: " << std::get<2>(myTuple) << std::endl; return 0; }