std::vector

std-vector.png
size() 要素数を返す

初期化

vector<int> books(1000);
vector<int> books[1000];//こっちはエラーになる
int inits[]={1,2,3,4,5};
vector<int> p(inits,inits+6);
vector<int> p(inits,init+ sizeof(inits) / sizeof(inits[0]);    //これで最強

newの代わり

は、resize()である。
resize(n)はn個分サイズを拡張する、という意味

vector<int> v;
v.resize(1000);

resize(n)したら、n個分のデータは0で初期化される。

vectorは可変長配列

v[5]=1;

という感じで要素を入れたらエラーになるが、push_back()して要素を増やし続けるのはok
いちいち、resizeしてくれてるのかね。

先頭のポインタが欲しいとき

は、data()を使えばいい。

fread(vector.data(),sizeof(unsigned char),count,fp);

代入(コピーしたいとき)

組み込み型でも、ユーザ定義型でもこれでいけた。

vector<int> src,dst;
dst=src;//これでok

vectorオブジェクト同志の代入は許可されている[3]

algorithmcopy関数を使う?copy関数内部ではループが使われているらしい。
effective-stlによると範囲形式のinsertがお勧めらしい。

後始末


vector

サポートサイト Wikidot.com vector