1 Vectors
Vector的結(jié)構(gòu):

1.jpg
namespace std {
template <class T,
class Allocator = allocator<T> >
class vector;
}
vector的元素可以使任意型別的T,但必須具備assignable和copyable兩個(gè)性質(zhì)。第二個(gè)template參數(shù)可有可無,用來定義內(nèi)存模型。缺省的內(nèi)存模型是C++標(biāo)準(zhǔn)庫提供的allocator。
2 Vectors的能力
Vectors將元素復(fù)制到內(nèi)部的dynamic array中。元素之間總是存在某種順序,所以vectors是一種有序群集。vector支持隨機(jī)存取,因此只要知道位置,你可以在常數(shù)時(shí)間內(nèi)存取任何一個(gè)元素。vector的迭代器是隨機(jī)存取迭代器,所以對(duì)任何一個(gè)STL算法都可以奏效。
在末端附件或刪除元素時(shí),vector的性能相當(dāng)好??墒侨绻阍谇岸嘶蛑胁堪膊寤騽h除元素,性能就不怎么樣了,因?yàn)椴僮鼽c(diǎn)之后的每一個(gè)元素都必須移到另一個(gè)位置,而每一次移動(dòng)都得調(diào)用assignment操作符。