●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

C++のベクター(vector)とは?配列より便利なSTLコンテナを使いこなそう!

C++の標準テンプレートライブラリ(STL)の中でも、もっとも基本でありながら強力なのが vector(ベクター) です。 配列のように使えますが、サイズを自動で拡張できるという大きな利点があります。

この記事では、C++の vector の基本的な使い方から、便利な関数、注意点までを初心者向けに解説します。

vectorとは?

vector は、C++の STL に含まれる可変長の配列です。 要素の追加や削除が簡単にでき、push_backsize などの便利なメソッドを持っています。

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次元配列としても利用可能です。

ベクターのメリット

  1. サイズ変更が簡単
    配列と違い、自動でサイズが増える。
  2. メモリ管理が不要
    自動的にメモリ確保・解放される。
  3. STLアルゴリズムとの相性が良い
    sortfind などにそのまま使える。

注意点

  • []でのアクセスは範囲外アクセスに注意。安全な at() の使用を推奨。
  • 大量のデータの挿入・削除が頻繁にある場合は list の方が適していることも。

まとめ

C++のvectorは、配列のように使えて、より柔軟で便利なSTLコンテナです。 初心者でも扱いやすく、多くの場面で活躍するため、必ず習得しておきたい基本機能のひとつです。

まずはpush_backfor文から試して、ベクターの便利さを体感してみましょう!

 

C++関連用語集

−−−−−  C++  −−−−−

C++のクラス(Class)とは?仕組みと使い方をわかりやすく解説!

C++のオブジェクト(Object)とは?クラスとの関係と役割をわかりやすく解説!

C++のコンストラクタ(Constructor)とは?役割と使い方をやさしく解説!

C++のデストラクタ(Destructor)とは?役割と使い方をやさしく解説!

C++の継承(Inheritance)とは?クラスを拡張する基本テクニック

C++の多態性/ポリモーフィズム(Polymorphism)とは?オブジェクト指向の真髄を解説!

C++のオーバーロード(Overload)とは?関数や演算子を便利に使い分けよう!

C++のオーバーライド(Override)とは?継承と仮想関数の正しい使い方

C++の仮想関数(Virtual Function)とは?ポリモーフィズムを実現する仕組みを解説!

C++の純粋仮想関数(Pure Virtual Function)とは?抽象クラスとの関係も解説!

C++の抽象クラス(Abstract Class)とは?使い方と役割をわかりやすく解説!

C++のテンプレート(Template)とは?型に依存しない汎用的な関数・クラスを作ろう!

C++の名前空間(Namespace)とは?名前の衝突を防ぐ便利な機能

C++の標準テンプレートライブラリ(STL)とは?効率的な開発に必須のライブラリ群

C++のベクター(vector)とは?配列より便利なSTLコンテナを使いこなそう!

C++のイテレータ(Iterator)とは?STLコンテナを自在に操作する鍵

C++の参照(Reference)とは?ポインタとの違いもわかりやすく解説!

C++のポインタ(Pointer)とは?メモリを操る強力な機能をやさしく解説!

C++の動的メモリ確保(Dynamic Memory Allocation)とは?newとdeleteを使いこなそう

C++のnew/delete演算子とは?動的メモリ確保の基本をマスターしよう!

C++の例外処理(Exception Handling)とは?try/catch/throwでエラーに強いプログラムを作ろう

C++のtry/catch構文とは?例外処理の基本をやさしく解説!

C++のRAIIとは?リソース管理を自動化する重要な設計原則

C++の静的変数(static variable)とは?使い方・特徴・注意点をやさしく解説!

C++の関数ポインタ(Function Pointer)とは?使い方と活用例をわかりやすく解説!

C++のラムダ式(Lambda Expression)とは?書き方・使い方をやさしく解説!

C++のスマートポインタ(Smart Pointer)とは?自動で安全なメモリ管理を実現しよう!

C++のコンパイル(Compile)とは?仕組みと流れをわかりやすく解説!

C++のリンク(Link)とは?コンパイルとの違いとエラー対策を解説!

C++のプリプロセッサディレクティブとは?#include や #define の意味と使い方