template <class... Types> class tuple;
A tuple is an object capable to hold a collection of elements. Each element can be of a different type.
1. 示例代码一
#include <iostream>
#include <tuple>
int main() {
std::tuple<int, char> tu1(1, 'a');
auto tu2 = std::make_tuple("info", 2, 2.71828, 3.f);
std::cout << std::get<0>(tu1) << std::endl; // 获取索引0处的值,得到的是引用
std::get<0>(tu1) = std::get<1>(tu2); // 修改索引0处的值
std::cout << std::get<0>(tu1) << std::endl;
int ival;
float fval;
std::tie(std::ignore, ival, std::ignore, fval) = tu2; // unpack (with ignore)
std::cout << ival << ", " << fval << std::endl; // 2, 3
}
2. 示例代码二
https://legacy.cplusplus.com/reference/tuple/tuple/?kw=tuple
#include <iostream> // std::cout
#include <tuple> // std::tuple, std::get, std::tie, std::ignore
int main()
{
std::tuple<int, char> foo(10, 'x');
auto bar = std::make_tuple("test", 3.1, 14, 'y');
std::get<2>(bar) = 100; // access element
int myint; char mychar;
std::tie(myint, mychar) = foo; // unpack elements
std::tie(std::ignore, std::ignore, myint, mychar) = bar; // unpack (with ignore)
mychar = std::get<3>(bar);
std::get<0>(foo) = std::get<2>(bar);
std::get<1>(foo) = mychar;
std::cout << "foo contains: ";
std::cout << std::get<0>(foo) << ' ';
std::cout << std::get<1>(foo) << '\n';
return 0;
}