2015-03-05 13 views
6

Ich habe einen Vektor von Tupeln vector<tuple<int,int>> vector; und ich möchte eines der Tupel, die es enthält, ändern.Ändern eines Tupel in einem Vektor von Tupeln C++

Ich bin mir nicht sicher, wie man den Wert des Tupels ändert und die Änderung im Vektor widerspiegeln wird. Ich habe versucht,

get<1>(tup) = v; 

zu verwenden, aber das ändert nicht den Wert des Tupels, das im Vektor ist. Wie kann ich das machen? Vielen Dank.

for (tuple<int, int>& tup : vector){ 

Antwort

14

Capture the tuple durch Verweis:: for-Schleife

+0

Danke, ich habe ganz vergessen darüber! – uniwolk

+3

Sie können auch 'auto':' für (auto & tup: vector) {...} 'verwenden – Aleph7

5

Sie müssen nur in Ihrem einen Verweis anstelle eines Wertes verwenden

for (tuple<int, int> &tup : vector){ 
//     ^here 
    if (get<0>(tup) == k){ 
     get<1>(tup) = v; 
    } 
} 
Verwandte Themen