1. 引言
std::tuple
是c++11新引入的数据结构,类似python中的tuple,也是std::pair
的扩展,支持任意元素数目,详细可以参考,std::tuple文档
2. c++11使用tuple
对tuple的访问和赋值只能通过下标进行操作,代码如下:
typedef size_t t_id;
typedef std::string s_id;
std::tuple<t_id, s_id> ctx;
// c++ >= c++11
// 基于下标访问和赋值
std::get<1>(ctx) = "string";
std::cout << "s_id = " << std::get<1>(ctx) << std::endl;
3. c++14或者c++17中使用tuple
c++14(c++17)新增了基于类型进行访问,代码如下:
// c++ >= c++14
// 基于类型访问和赋值
std::get<t_id>(ctx) = 1;
std::cout << "t_id = " << std::get<t_id>(ctx) << std::endl;
4 另外两个有用的元素
另外两个有用的操作就是std::make_tuple
和std::tie
,可以参看官方文档。
网友评论