ベクトルの初期化

C++Beginner
オンラインで実践に進む

はじめに

この実験では、C++ でベクトルを初期化する方法を学びます。ベクトルは、挿入または削除する要素の数に応じて自動的にサイズを変更できる動的サイズ変更可能な配列です。ベクトルは、固定サイズで静的な通常の配列よりも有利です。

新しい C++ ファイルを作成する

ターミナルで、cd コマンドを使用してプロジェクトディレクトリに移動します。次のコマンドを使用して、main.cpp という名前の新しい C++ ファイルを作成します。

touch ~/project/main.cpp

お好みのコードエディタを使用してファイルを開きます。

配列のようにベクトルを初期化する

次のコードを使用して、配列のようにベクトルを作成して初期化します。

// Initializing a vector like an array
vector<int> v{1, 2, 3, 4};

// Print the vector
cout << "The elements of the first vector are: ";
for (int i : v)
{
    cout << i << " ";
}

これにより、ベクトル v が作成され、4 つの要素で初期化されます。その後、for ループを使用してこのベクトルの要素を出力することができます。

配列からベクトルを初期化する

次のコードを使用して、配列からベクトルを作成して初期化します。

// Initializing a vector from an array
int a[] = {11, 22, 33};
int n = sizeof(a) / sizeof(a[0]); // number of elements in the array
vector<int> v1(a, a + n); // create and initialize the vector from the array

// Print the vector
cout << "The elements of the second vector are: ";
for (int i : v1)
{
    cout << i << " ";
}

これにより、配列 a が作成され、3 つの要素で初期化されます。その後、この配列の要素数を計算し、ベクトル v1 を作成して配列の要素で初期化します。そして、for ループを使用してこのベクトルの要素を出力することができます。

別のベクトルからベクトルを初期化する

次のコードを使用して、別のベクトルからベクトルを作成して初期化します。

// Initializing a vector from another vector
vector<int> a1 = {10, 22, 33};
vector<int> b(a1.begin(), a1.end()); // create and initialize the second vector with the elements of the first vector

// Print the vector
cout << "The elements of the third vector are: ";
for (int i : b)
{
    cout << i << " ";
}

これにより、ベクトル a1 が作成され、3 つの要素で初期化されます。その後、別のベクトル b を作成し、ベクトル a1 の要素で初期化します。そして、for ループを使用してベクトル b の要素を出力することができます。

コードをコンパイルして実行する

main.cpp ファイルに変更を保存します。次のコマンドを使用してコードをコンパイルします。

g++ main.cpp -o main

次のコマンドを使用して実行ファイルを実行します。

./main

出力を表示する

ターミナル上で出力を表示します。次のような出力が表示されるはずです。

The elements of the first vector are: 1 2 3 4

The elements of the second vector are: 11 22 33

The elements of the third vector are: 10 22 33

まとめ

この実験では、C++ で様々な方法を使ってベクトルを初期化する方法を学びました。配列を使ってベクトルを初期化し、別のベクトルの要素でベクトルを初期化し、配列のようにベクトルを初期化しました。C++ でベクトルを初期化するさまざまな方法を知ることは、より効率的で読みやすいコードを書くのに役立ちます。