メインコンテンツにスキップ
モジュール 5 · レッスン 1 / 2コース内の 11/18~12 min
モジュールのレッスン (1/2)

配列とベクトル

C++ では、データのコレクションの管理は主に、古いスタイルの配列 (C スタイルの配列) と ベクトル (std::vector) という 2 つのツールを通じて行われます。静的メモリと動的メモリの違いを理解することは、効率的なコードを作成するための基本です。


1. 静的配列 (C スタイルの配列)

配列は、連続したメモリ位置に格納されている同じ型の要素のコレクションです。静的配列のサイズはコンパイル時にわかっている必要があり、後で変更することはできません。

C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers

主な特徴:

  • 固定サイズ: 実行時に要素を追加または削除することはできません。
  • スタック割り当て: 割り当てと割り当て解除が非常に高速です。
  • アクセス: インデックス演算子 [] を介して実行されます (例: 最初の要素の grades[0])。

2. 動的ベクトル (std::vector)

C++ 標準テンプレート ライブラリ (STL) は、動的配列を表す std::vector クラスを提供します。これを使用するには、<vector> ヘッダーを含める必要があります。

C++
#include <vector>

std::vector<int> numbers; // Creates an empty vector of integers

一般的な操作:

  • 最後に追加: .push_back(value) メソッドは、ベクターの最後に要素を挿入し、必要に応じてメモリを自動的に再割り当てします。
  • サイズ: .size() メソッドは、現在ベクトル内の要素の数を返します。
  • 安全なアクセス: [] 演算子に加えて、インデックスが範囲外の場合に例外をスローする .at(index) メソッド (numbers.at(0) など) を使用できます。
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

自分で試してみてください

運動#cpp.m5.l1.e1
試行回数: 0読み込み中…

数値という名前の整数の std::vector を宣言します。 .push_back() メソッドを使用してその中に値 10、20、および 30 を追加し、numbers.size() を使用してそのサイズを出力します。

エディターを読み込み中…
ヒントを表示

`std::vector<int>numbers;` でベクトルを宣言し、`.push_back(value)` で 3 つの数値を挿入し、`std::cout <<numbers.size();` で出力します。

3 回の試行後に解決策が利用可能になります

運動#cpp.m5.l1.e2
試行回数: 0読み込み中…

main では、5 つの要素からなるグレード配列が定義されています。 for ループを作成して、配列内のすべての要素の合計を計算し、それを変数 sum に格納し、std::cout を使用して出力します。

エディターを読み込み中…
ヒントを表示

「for (int i = 0; i < 5; ++i)」ループを使用し、ループ内の各要素を「sum += Grade[i];」で合計します。

3 回の試行後に解決策が利用可能になります

Quiz#cpp.m5.l1.q1
準備完了

C++ で std::vector の末尾に要素を追加する正しい方法は何ですか?

C++
std::vector<int> numbers; // come aggiungere il valore 50?
回答の選択肢