Code Fix

中級範囲for文で要素をコピーしてしまい変更が反映されないバグ › パターン2

範囲for文で要素をコピーしてしまい変更が反映されないバグ

for (int n : nums) のように範囲for文の変数を値(コピー)で受け取っているため、ループの中でnを書き換えても元のvectorの要素は変わらないバグです。

 1  #include <iostream>
 2  #include <vector>
 3  int main() {
 4      std::vector<int> prices = {10, 20, 30};
 5      for (_________ p : prices) {
                 ^
 6          p += 5;
 7      }
 8      for (int p : prices) std::cout << p << " ";
 9      std::cout << std::endl;
10      return 0;
11  }
出力: 10 20 30期待: 15 25 35

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

範囲for文で要素をコピーしてしまい変更が反映されないバグ

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)