Как установить элемент std :: tuple по индексу? - PullRequest
68 голосов
/ 17 сентября 2011

Можно получить элемент из std::tuple по индексу, используя std::get. Аналогично, как установить элемент кортежа по индексу?

Ответы [ 2 ]

101 голосов
/ 17 сентября 2011

std::get возвращает ссылку на значение.Таким образом, вы устанавливаете значение так:

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

Это, конечно, предполагает, что myTuple неконстантно.Вы даже можете перемещать предметы из кортежа с помощью std::move, вызывая его на кортеже:

auto movedTo = std::get<0>(std::move(myTuple));
18 голосов
/ 17 сентября 2011

Неконстантная версия get возвращает ссылку .Вы можете назначить ссылку.Например, предположим, что t является кортежем, тогда: get<0>(t) = 3;

...