Jak ustawić element std :: tuple według indeksu?

89

Można pobrać element z std::tupleindeksu za pomocą std::get. Analogicznie, jak ustawić element krotki według indeksu?

Behrouz.M
źródło

Odpowiedzi:

131

std::getzwraca odniesienie do wartości. Więc ustawiasz wartość w ten sposób:

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

To oczywiście zakłada, że myTuplenie jest stała. Możesz nawet przenosić elementy z krotki za pośrednictwem std::move, wywołując je w krotce:

auto movedTo = std::get<0>(std::move(myTuple));
Nicol Bolas
źródło
25

Wersja non-const get zwraca odwołanie . Możesz przypisać do odniesienia. Na przykład załóżmy, że tto krotka, a następnie:get<0>(t) = 3;

dobrze
źródło