vector的数据安排和array非常相似,array是静态空间,一旦配置就不能改变,如果要改变的话,首先要配置新的空间,把元素移过去,释放原来的空间。而vector模塑出个一dynamic array,随着元素加入,它的内部机制自行扩充空间(一旦vector的空间满载,内部机制会做出配置新空间、激动数据、释放旧空间的行为)。
1.vector的构造和析构函数
vector<Elem> c //Default构造函数,产生空vector,没有元素
vector<Elem> c(c2) or c=c2 //Copy构造函数,建立一个和c2同类型的vector,拷贝c2
vector<Elem> c(n) //利用Default构造函数,生成大小为n的vector
vector<Elem> c(n,elem) //生成大小为n的vector,每个元素值为elem
vector<Elem> c(beg,end) //建立一个vector,以[beg,end)作为元素值
vector<Elem> c(initlist) or c=initlist //建立一个vector,以初值列如{0 , 0,0,0}为初值
c.~vector() //销毁所有元素,释放内存