Comment définir l'élément std :: tuple par index?

89

On peut obtenir un élément std::tuplepar index en utilisant std::get. Analogiquement, comment définir l'élément de tuple par index?

Behrouz.M
la source

Réponses:

131

std::getrenvoie une référence à la valeur. Vous définissez donc la valeur comme ceci:

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

Cela suppose bien sûr que ce myTuplen'est pas const. Vous pouvez même déplacer des éléments hors d'un tuple via std::move, en l'appelant sur le tuple:

auto movedTo = std::get<0>(std::move(myTuple));
Nicol Bolas
la source
25

La version non-const de get renvoie une référence . Vous pouvez attribuer à la référence. Par exemple, supposons qu'il ts'agisse d'un tuple, alors:get<0>(t) = 3;

amit
la source