2007年7月18日水曜日

vector classを触ってみた。

vector class
動的に配列の大きさを変更できるクラス。
内部的では連続したメモリ領域を確保している

n = vectorのサイズ
・ランダムアクセスが可能。
・値の取得は O(1) の時間で取得できる。
・値の追加は O(1) なので速い、ただし vector のサイズを超える追加はメモリを確保し直すため遅くなる。
・値の挿入は 最大O(n) かかる。追加同様 vector のサイズを超える場合は遅くなる。
・値の削除は 最大O(n) かかる。

値の追加によって、メモリの再確保が起こる可能性があるため
あらかじめ大きさが解っている場合に使えそう。
値の取得も速いから使い勝手がよさそう。

とにかく使ってみる。
------------------------
#include <vector>
#include <cstdio>

int main (void) {
const int size = 10;
std::vector v(size); // 大きさ size の vector を作成
int i = 0;

// 値の設定
for (i = 0; i < size; ++i) {
v[i] = i;
}

// 値を出力
for (i = 0; i < size; ++i) {
printf("%d\n", v[i]);
}

}
------------------------

…と書いてみたが普通の配列やん!!!
いろいろメソッドもあるみたいやから
普通の配列よりは使い勝手がよいね。

0 件のコメント:

ラベル