質問
AtCoderのコードテストで下のコードのように出力結果が11となりました。13になるはずという理解だったのでなぜそうならないか、下の範囲for文での各pairの更新がなされていないのか教えて欲しいです。
該当のソースコード
C++20(gcc12.2)
1#include <bits/stdc++.h>2using namespace std;3 4int main() {5 6 vector<pair<int, int>> v(2);7 v = {make_pair(9, 8), make_pair(7, 6)};8 9 for(int i; i<2; i++){10 v.at(i) = make_pair(11,12);11 }12 13 for(pair<int, int> t : v) {14 t = make_pair(13,14);15 }16 17 cout << v.at(1).first << endl;//1118}
補足情報
APG4b3.02の勉強中で生じた疑問です
0 コメント