版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huatian5/article/details/85048065
std::tuple
是一个可以支持参数集的类模板
- std::make_tuple 创建一个 tuple
- std::tie 创建一个左值引用的 tuple
- std::get 获取参数集合某个位置的参数
- tuple_size 获取参数集数目
示例:
#include <iostream>
#include <vector>
#include <tuple>
#include <string>
constexpr int N = 10;
template<class T>
void Print(T t) {
std::cout << std::tuple_size<T>::value << "\n";
}
int main(){
using TP = std::tuple<bool, int , float>;
std::vector<TP> v;
v.reserve(N);
for (int i = 0; i < N; ++i)
v.push_back(TP{false , 1 , 6.66});
for (int i = 0; i < N; ++i)
v.push_back(std::make_tuple(true, 1, 6.66));
for (auto x : v) {
std::cout << std::get<0>(x) << " " << std::get<1>(x) << " " << std::get<2>(x) << "\n";
}
int n = 5;
std::string s = "sss";
auto tp = std::tuple_cat(v[0], std::tie(n , s));
std::cout << std::get<0>(tp) << " " << std::get<1>(tp) << " " <<
std::get<2>(tp) << " " << std::get<3>(tp) << " " << std::get<4>(tp) << " " << "\n";
Print(tp);
return 0;
}