[C++] 関数を使って配列の中身を変える

今回は関数関数を使って配列の中身を変えていきたいと思います。

ソースコード

#include <iostream>
#include <vector>

using namespace std;

void sort1(vector<int> a) {
  sort(a.begin(), a.end());
}

void sort2(vector<int>& a) {
  sort(a.begin(), a.end());
}

void print_vector(vector<int> a) {
  for(int i = 0; i < a.size(); i++) {
    cout << a[i] << " ";
  }
  cout << endl;
}

int main(void) {
  vector<int> a;

  for(int i = 0; i < 5; i++) {
    int x;
    cin >> x;
    a.push_back(x);
  }

  sort1(a);
  print_vector(a);

  sort2(a);
  print_vector(a);

}

/*
実行結果

3 15 6 8 2
3 15 6 8 2 
2 3 6 8 15 

*/

やはり関数を使って中身を変えるときはアドレスを使うと変更できますね。

最初のsort1()関数はアドレスを使っていないので、中身の変更がされていません。

今回は以上になります。

ではまた。

コメント

タイトルとURLをコピーしました