填充一个boost元组替代方法

时间:2013-12-04 11:53:37

标签: c++ tuples

我目前正在做这样的事情

typedef boost::tuple<std::string,std::string> My_tuple;

然后,当我需要将值放入其中时,我会执行以下操作

My_tuple tup  =  boost::make_tuple("StringA","StringB"); 

这很好但是我想知道如果我想稍后填充字符串值,而不是当我使用boost::make_tuple时我的选项是什么?

2 个答案:

答案 0 :(得分:4)

或者,如果要设置所有元素,请使用boost::tie函数:

boost::tuple<std::string, std::string> t;
t = boost::tie("first", "second");

答案 1 :(得分:3)

元组是可变的,它的get成员返回一个引用,所以当你需要更改字符串时,只需继续执行:

typedef boost::tuple<std::string, std::string> My_tuple;
My_tuple tup = boost::make_tuple("", "");

boost::get<0>(tup) = "StringA";
boost::get<1>(tup) = "StringB";