Tips of VC++ > STL > 可変長配列クラス<vector>
前へ戻る ★ 次へ進む ★


このドキュメントにはサンプルプログラムが含まれています。
ワークスペース
ソースファイル(テキスト)


可変長配列クラス<vector>

std::vectorクラスは可変長配列、すなわち、 配列の要素数を自由に変えることのできる配列のことです。 newやdeleteステートメントを使っても可能です。 用途に応じて使い分けてください。

stringクラスとは違い、vectorはテンプレートクラスです。 テンプレートクラスとは、 型もプログラマが自由に決定できるクラスのことです。 vectorクラスで何の配列かを決められないと話になりませんよね。 整数型の配列やポインタの配列などです。

MSDNの該当個所はこちら

[]演算子を使ってただの配列ライクな操作が可能です。 メンバ関数には指定要素の削除、挿入、要素数の取得、などが主です。 MSDNで関数名などを見れば意味はつかめると思います。

サンプルプログラムで宣言方法などをわかっていただければ幸いです。
INTARRAYという整数型vectorを定義してますが、 これをstd::vectorとしてももちろん構いません。 汚いプログラムですけどね。あと、珍しくコンソールです。

//
// stlvctr.cpp
//


#include <vector>
#include <iostream.h>


// これを使うとstd名前空間名は指定しなくてもよい
using namespace std;

// あえて型宣言を使ってみる
typedef vector<int> INTARRAY;

int main(void)
{
	INTARRAY array(10);

	for ( int i=0 ; i<array.size() ; ++i )
		array[i]=i*i*i;

	for ( i=0 ; i<array.size() ; ++i )
		cout << array[i] << " ";

	cout << endl << endl;

	// 配列のもとの要素は保存されようとする
	array.resize(15);

	for ( i=0 ; i<array.size() ; ++i )
		cout << array[i] << " ";

	cout << endl << endl;

	cout << "Hit \"Ctrl+Z\", and finish. >> ";

	char any;
	cin >> any;

	return 0;
}

Jan.14, 2003