【C++】配列の要素を関数内で変更する方法【参照渡し】
C++で定義した配列の要素を、関数を使って変更したい場合の方法をまとめる。
以下のコードのようにただ単に、関数を定義して使っても、配列は関数に代入する前と同じになってしまう。
void ChangeNum(std::vector<int> array){
array[0] = 0;
}
std::vector<int> numbers = {1, 2, 3, 4}
ChangeNum(numbers); // numbersの1つ目の要素1を0に変える
std::cout << numbers[0] << std::endl;
// 出力
// 1
// 1のままで0にはならない
&を付けて参照渡しにする
方法としては、関数の定義の引数で、配列のところには&を付けて参照渡しにすれば良い。
今回の場合は、std::vector<int> array → std::vector<int>& arrayにする。
void ChangeNum(std::vector<int>& array){
array[0] = 0;
}
std::vector<int> numbers = {1, 2, 3, 4}
ChangeNum(numbers); // numbersの1つ目の要素1を0に変える
std::cout << numbers[0] << std::endl;
// 出力
// 0
// 1から0になった
参考: https://qiita.com/shun-shun123/items/69af670f0332fa424f6e
人気記事
人気記事はこちら。