可以使用
std::tuple
通过索引从 std::get
获取元素。
类似地,如何通过索引设置元组的元素?
std::get
返回对该值的引用。所以你设置这个值是这样的:
std::get<0>(myTuple) = newValue;
这当然假设
myTuple
是非常数。您甚至可以通过 std::move
将项目从元组中移出,方法是在元组上调用它:
auto movedTo = std::get<0>(std::move(myTuple));
我知道这是一个老问题,但是通过索引设置元组元素的语法有点奇怪。也许
std::tie
(也返回 lref)是一种更好的机制,类似于
std::tuple<bool, std::string, int> my_tuple = std::make_tuple(true, "foo", 42);
bool b;
std::string s;
int i;
std::tie(b, s, i) = my_tuple;
b = false;
s = "bar";