要素の追加
CoddyのC++ジャーニー「論理と制御フロー」セクションの一部 — レッスン 11/56。
ベクターの作成方法を理解したところで、作成後に要素を追加する方法を学びましょう。push_back() メソッドは、ベクターの末尾に新しい要素を追加してベクターを拡張するための主要なツールです。
push_back() メソッドは、単一の引数(追加したい値)を取り、それをベクトルの末尾に追加します:
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);この例では、空のベクターから開始し、push_back() を使用して3つの整数を追加します。これらの操作の後、ベクターには [10, 20, 30] の要素がその順序で含まれます。
push_back() の利点は、すべてのメモリ管理を自動的に処理してくれることです。要素を追加してベクタの空き容量がなくなったとき、自動的にメモリをさらに割り当て、既存の要素を新しい場所にコピーします。これにより、最終的なサイズが事前にはわからないデータのコレクションを構築する際に、ベクタは非常に便利になります。
チャレンジ
簡単push_back() メソッドを使用して、ベクタに要素を追加する方法を示すプログラムを作成してください。空のベクタから開始し、特定の順序で数値を追加することで動的に構築します。
以下の入力が提供されます:
- ベクタに追加する数値の個数を示す整数
n - その後、ベクタに1つずつ追加される
n個の整数
プログラムは以下の手順を実行する必要があります:
numbersという名前の空のstd::vector<int>を作成します- ループを使用して、
n個の入力数値をそれぞれ読み取ります - 各数値について、
push_back()を使用してベクタの末尾に追加します - 各数値を追加した後、ベクタの現在のサイズと、今追加されたばかりの数値を出力します
- 最後に、ベクタ内のすべての要素をスペースで区切って1行に出力します
以下の正確な出力形式を使用してください:
Added [number], size is now [current size]
Added [number], size is now [current size]
...
Final vector: [num1] [num2] [num3] ...各追加の後にベクタ内の現在の要素数を取得するには、.size() メソッドを使用してください。最終的な出力では、角括弧 [] 演算子を使用してインデックスで各要素にアクセスしてください。
チートシート
push_back() を使用して、ベクターの末尾に要素を追加します。
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);push_back() メソッドはメモリ管理を自動的に行い、要素を追加する際に必要に応じてベクターを拡張します。
自分で試してみよう
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 追加する要素の数を読み込む
int n;
cin >> n;
// 空のベクターを作成する
vector<int> numbers;
// TODO: ここにコードを書いてください
// n個の数値を読み込み、push_back()を使用してベクターに追加する
// 各追加の後に必要な出力を表示する
// 最終的なベクターを表示する
cout << "Final vector: ";
// TODO: すべての要素をスペースで区切って表示する
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。