vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。Vector的数据安排及操作方式与array非常相似,唯一的差别在于array是静态空间,一旦配置了就不能改变;vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。
1、vector对象的定义及初始化
vector<type> vec1; // v1保存类型为type的对象,默认构造函数,v1为空 vector<type> vec2(size); // v2含有值初始化的元素的size个副本 vector<type> vec3(size,value); // v3包含值为value的size个元素 vector<type> vec4(myvector); // v4是myvector的一个副本 vector<type> vec5(first,last); // 用迭代器[first,last)之间的元素创建vector5
2、vector中各种函数用法
v.empty():如果v为空,则返回true,否则返回false。
v.size():返回v中元素的个数。
v.push_back(t):在v的末尾增加一个值为t的元素。
v[n]:返回v中位置为n的元素。
v1=v2:把v1的元素替换成v2中元素的副本。
v1==v2:如果v1与v2相等,则返回true。!=, <, <=, >, >=:保持这些操作符惯有的含义。c.pop_back():删除向量最后一个元素。
c.clear():删除向量中所有元素。
/* 删除迭代器后,返回的是迭代器指向被删除元素后面的元素 */
c.erase(iter):删除迭代器iter所指向的元素,返回一个迭代器指向被删除元素后面的元素。
c.erase(start, end):删除迭代器start、end所指定范围内的元素,返回一个迭代器指向被删除元素段后面的元素。
c.push_back(x):把x插入到向量的尾部。
/* 增加元素后,返回的是指向新元素的迭代器 */
c.insert(iter, x):在迭代器iter指向的元素之前插入值为x的新元素,返回指向新插入元素的迭代器。
c.insert(iter,n,x):在迭代器iter指向的元素之前插入n个值为x的新元素,返回void。
c.insert(iter,start,end):把迭代器start和end所指定的范围内的所有元素插入到迭代器iter所指向的元素之前,返回void。