开发C++智能指针CPP11特性之tuple
Hoshea Zhang在 C++11 中引入了 std::tuple
类模板,它是一个通用的元组(Tuple)类,用于存储多个不同类型的值。std::tuple
可以看作是一个固定大小的、类型安全的、不可修改的集合。
使用 std::tuple
可以方便地组合多个值,而无需定义新的结构体或类。下面是一个简单的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include <iostream> #include <tuple>
int main() { std::tuple<int, double, std::string> myTuple(42, 3.14, "Hello");
int intValue = std::get<0>(myTuple); double doubleValue = std::get<1>(myTuple); std::string stringValue = std::get<2>(myTuple);
std::cout << "int value: " << intValue << std::endl; std::cout << "double value: " << doubleValue << std::endl; std::cout << "string value: " << stringValue << std::endl;
return 0; }
|
除了使用 std::get
函数,还可以使用结构化绑定(Structured Binding)来解包元组中的值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <iostream> #include <tuple>
int main() { std::tuple<int, double, std::string> myTuple(42, 3.14, "Hello");
auto [intValue, doubleValue, stringValue] = myTuple;
std::cout << "int value: " << intValue << std::endl; std::cout << "double value: " << doubleValue << std::endl; std::cout << "string value: " << stringValue << std::endl;
return 0; }
|