119

One can get an element from std::tuple by index using std::get. Analogically, how to set tuple's element by index?

cubuspl42
  • 7,833
  • 4
  • 41
  • 65
Behrouz.M
  • 3,445
  • 6
  • 37
  • 64

2 Answers2

170

std::get returns a reference to the value. So you set the value like this:

std::get<0>(myTuple) = newValue;

This of course assumes that myTuple is non-const. You can even move items out of a tuple via std::move, by invoking it on the tuple:

auto movedTo = std::get<0>(std::move(myTuple));
Nicol Bolas
  • 449,505
  • 63
  • 781
  • 982
27

The non-const version of get returns a reference. You can assign to the reference. For example, suppose t is tuple, then: get<0>(t) = 3;

Nicol Bolas
  • 449,505
  • 63
  • 781
  • 982
amit kumar
  • 20,438
  • 23
  • 90
  • 126