Как установить элемент std :: tuple по индексу?

89

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

Бехруз М.
источник

Ответы:

131

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

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

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

auto movedTo = std::get<0>(std::move(myTuple));
Николь Болас
источник
25

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

амит
источник