C++中有 std::pair,C++11增加了std::tuple,是对std::pair的泛化。
一 简介
1 头文件<tuple>
2 声明
template<class ... Types> class tuple;
二 tuple定义及初始化的几种方式
1 模板实例化
这个对使用tuple来说是比较笨重的方法,不展开。
2 使用std::make_tuple
auto t = std::make_tuple(1, "jack", 89.5);
3 使用std::tie
int num;
std::string name;
double score;
......
auto t1 = std::tie(num, name, score);
4 使用std::tuple_cat
std::tuple<int, std::string, float> t1(10, "Test", 3.14);
int n = 7;
auto t2 = std::tuple_cat(t1, std::make_pair("Foo", "bar"), t1, std::tie(n));
t2的值:(10, Test, 3.14, Foo, bar, 10, Test, 3.14, 7)
三 tuple元素访问的两种方式
1 跟std::pair一样,使用std::get进行访问
cout << " std::get<0>(t) " << std::get<0>(t) << std::endl;
cout << " std::get<1>(t) " << std::get<1>(t) << std::endl;
cout << " std::get<2>(t) " << std::get<2>(t) << std::endl;
2 使用std::tie进行访问
int num;
std::string name;
double score;
std::tie(num, name, score) = t;
cout << "num: " << num << std::endl;
cout << "name: " << name << std::endl;
cout << "score: " << score << std::endl;
四 参考
五 延伸
本文深入探讨了C++中std::tuple的使用方法,包括其定义、初始化方式、元素访问及组合技巧。从模板实例化到std::make_tuple、std::tie和std::tuple_cat的应用,再到std::get和std::tie的访问方式,全面解析std::tuple的高效使用。
2万+

被折叠的 条评论
为什么被折叠?



