C++ 基礎
首都大学東京 田川研究室
戻る

std::vector

配列を管理してくれるクラスです。大変高機能ですので覚えて損はないはず。
#include <iostream>

//こちらは入出力関連ではないので、標準ライブラリでもvectorに分けられています。
#include <vector>
using namespace std;//std::を省略

int main()
{
    int ia;
    vector<int> via(0);//初期の配列のサイズを0にセット

    cout << "0未満の数値が入力されるまで、受け取り続けます\n";
    while(true)
    {
        cin >> ia;
        cout << "\n";
        
        if(ia < 0)
            break;

        via.push_back(ia);
    }
    
    
    cout << "\n入力された数値の個数は " << via.size() <<" です\n";



    return 0;
}
push_back()メンバ関数を用いれば、配列の要素を足していってくれます。size()メンバ関数で現在の配列のサイズがわかります。大変高機能でエラー処理も行ってくれるので配列関係のバグが激減します。しかし、生の配列よりはやはり重いので、私は処理速度を優先しない場合に限り積極的に使っています。
vector<int> via(0);
このように配列の型、初期配列のサイズなどを宣言時に指定できるのも大きな特徴です。vector<int>の書き方はC++のテンプレートという機能です。厳密に知らなくても大丈夫ですが気になる人は調べてみてください。

使える場面は上記のようなクラスを作る場合などです。

なお、テンプレートの機能はコンパイルに多大な時間を要します。