Reputation: 3573
One can get an element from std::tuple
by index using std::get
.
Analogically, how to set tuple's element by index?
Upvotes: 126
Views: 82959
Reputation: 473282
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));
Upvotes: 184
Reputation: 21012
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;
Upvotes: 29