<C++>配列
今回の記事でわかること
- 配列の基本的な使い方がわかる
- 配列の要素へのアクセス方法がわかる
- 配列の長さを求める方法がわかる
- std::array や std::vector の違いが分かる
配列とは
プログラムで「同じ型のデータをまとめて管理したい」ときに使います。例えば、テストの点数を30人分まとめて扱いたい場合や、日ごとの売り上げデータを並べたい場合などに便利です
変数を30個書くのは大変ですが、配列を使えば一括で扱えます
配列の宣言と初期化
#include <iostream>
using namespace std;
int main() {
int scores[5] = {90, 80, 70, 60, 50};
for (int i = 0; i < 5; i++) {
cout << "scores[" << i << "] = " << scores[i] << endl;
}
return 0;
}
/* 出力結果
scores[0] = 90
scores[1] = 80
scores[2] = 70
scores[3] = 60
scores[4] = 50
*/
int score[5]; のように宣言すると「要素数5の配列」になります。インデックスは0から始まるという決まりがあるため、最後は4になります
配列の長さを決める
C++ の組み込む配列は長さを自動で持たないため、自分で計算する必要があります
int scores[] = {90, 80, 70};
int len = sizeof(scores) / sizeof(scores[0]);
cout << "len = " << len << endl;
/* 出力結果
len = 3
*/
標準ライブラリの配列
std::array(固定長配列)
C++11 以降は std::array が推奨されています。固定長だけど、メソッドが使えるため便利です
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 3> scores = {90, 80, 70};
for (int s : scores) {
cout << s << endl;
}
cout << "size = " << scores.size() << endl;
}
std::vector(可変長配列)
サイズを自由に増減できる配列。現代 C++ では一番よく使われています
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> scores = {90, 80};
scores.push_back(70); // 要素を追加
scores.push_back(60);
for (int s : scores) {
cout << s << endl;
}
cout << "size = " << scores.size() << endl;
}
/* 出力結果
90
80
70
60
size = 4
*/
配列の使い分け
種類 | 特徴 |
---|---|
組み込み配列 | 高速でシンプル、ただしサイズ変更不可 |
std::array | 固定長、安全に使える、便利な関数あり |
std::vector | 可変長、現代 C++ で主流 |
実用パターン
合計・平均を求める
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> scores = {80, 90, 100};
int sum = 0;
for (int s : scores) sum += s;
double avg = (double)sum / scores.size();
cout << "sum=" << sum << ", avg=" << avg << endl;
}
/* 出力結果
sum=270, avg=90
*/