C++のベクター(vector)とは?配列より便利なSTLコンテナを使いこなそう!
C++の標準テンプレートライブラリ(STL)の中でも、もっとも基本でありながら強力なのが vector(ベクター) です。
配列のように使えますが、サイズを自動で拡張できるという大きな利点があります。
この記事では、C++の vector の基本的な使い方から、便利な関数、注意点までを初心者向けに解説します。
vectorとは?
vector
は、C++の STL に含まれる可変長の配列です。
要素の追加や削除が簡単にでき、push_back
や size
などの便利なメソッドを持っています。
vectorの宣言と初期化
#include <vector>
using namespace std;
vector<int> nums; // 空のベクター
vector<int> nums2(5); // 要素5つ(初期値0)
vector<int> nums3(5, 10); // 要素5つ(すべて10)
vector<string> words = {"A", "B", "C"}; // 初期値付き
主なメンバ関数
関数 | 説明 |
push_back(x) | 末尾に要素xを追加 |
pop_back() | 末尾の要素を削除 |
size() | 現在の要素数を取得 |
at(i) | i番目の要素を取得(範囲チェックあり) |
clear() | すべての要素を削除 |
empty() | ベクターが空かどうか確認 |
使用例
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> nums;
nums.push_back(10);
nums.push_back(20);
nums.push_back(30);
for (int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
return 0;
}
このコードでは、3つの整数をベクターに追加し、for文で出力しています。
範囲ベースのfor文(C++11以降)
for (int n : nums) {
cout << n << " ";
}
この書き方は簡潔で読みやすく、初心者にもおすすめです。
二次元ベクター
vector<vector<int>> matrix(3, vector<int>(4, 0));
// 3行4列、すべて0で初期化
ベクターは入れ子にもできるため、2次元配列としても利用可能です。
ベクターのメリット
- サイズ変更が簡単
配列と違い、自動でサイズが増える。
- メモリ管理が不要
自動的にメモリ確保・解放される。
- STLアルゴリズムとの相性が良い
sort
や find
などにそのまま使える。
注意点
[]
でのアクセスは範囲外アクセスに注意。安全な at()
の使用を推奨。
- 大量のデータの挿入・削除が頻繁にある場合は
list
の方が適していることも。
まとめ
C++のvectorは、配列のように使えて、より柔軟で便利なSTLコンテナです。
初心者でも扱いやすく、多くの場面で活躍するため、必ず習得しておきたい基本機能のひとつです。
まずはpush_back
やfor文
から試して、ベクターの便利さを体感してみましょう!