vectorとは
vectorとは一言で言うと可変長配列です。 データが確保した記憶領域に収まりきらなくなったら自動で領域を拡張してくれ、 配列の長さを自動で管理してくれるます。
内部的な実装では、単純に配列を使って実装しています。
配列なので、末尾以外への要素の挿入には時間がかかりますが、
operator[]
を使って自由に要素にアクセスできます。
vectorという言葉は数学に出てくるベクトルと同じvectorなのですが、 STLのvectorはメモリの許す限り、次元を拡張できるn次元ベクトルだと思ってください。 (まあ、むしろ数学のベクトルは想像しないほうがいいです。)
vectorの特徴
-
ランダムアクセス(
[]
を使って添え字を指定してのアクセス)が O(1) で行え、もっとも高速 -
末尾への要素の追加、削除は O(1) で行える
-
それ以外への場所の要素の追加は O(n) かかる