如何通过索引设置std :: tuple元素?

Beh*_*z.M 72 c++ indexing templates tuples

可以std::tuple通过索引使用获取元素std::get.类似地,如何通过索引设置元组的元素?

Nic*_*las 109

std::get返回对值的引用.所以你设置这样的值:

std::get<0>(myTuple) = newValue;
Run Code Online (Sandbox Code Playgroud)

这当然假设myTuple是非const的.您甚至可以通过std::move在元组上调用它来移动元组中的项目:

auto movedTo = std::get<0>(std::move(myTuple));
Run Code Online (Sandbox Code Playgroud)

  • 它必须以这种方式完成,因为std :: set不可用于此目的...... (4认同)

ami*_*mit 20

非const版本get 返回一个引用.您可以分配给参考.例如,假设t是元组,则:get<0>(t) = 3;