STL容器类型S共同具有的操作:
- S s1 构造空容器
- begin()返回第一个元素的迭代器
- end()返回最后一个元素下一个位置的迭代器
- clear()清空容器内容
- empty()判空。空返回1,非空返回0
- size()返回容器的元素个数
- s1.swap(s2)将容器s1与s2的内容交换
1.向量容器中的元素连续储存在动态分配的数组中,因此支持高效的随机访问和尾部插入操作以及动态扩展容器空间。
2.向量容器对象分配的储存空间常常比实际储存的元素个数大,前者叫向量容器的容量(capacity)可以用capacity()成员函数获取;后者叫向量容器的大小(size),可以用size()函数获取。
3.在中间删除或添加元素效率不高,越靠近头部越慢;不支持push_front和pop_front函数
4.向量容器不支持双向遍历,既没有逆向迭代器
5.删除向量容器的元素时,并不会使空闲的空间被释放,可以使用下列语句释放多余空间:vector(s.begin(),s.end()).swap(s)
常用的操作:
-
尾部插入元素t:push_back(t)
-
删除尾部元素:pop_back()
-
清空操作:clear()清空容器的内容
-
删除操作:erase(p):删除p所指向的元素,并返回下一个元素的迭代器;erase(p1,p2):删除区间[p1,p2)内的元素,并返回p2的迭代器
-
insert(p1,t)在p1所指的位置插入一个新元素t,返回一个迭代器指向新元素t,可以接收返回的迭代器,也可以不接收;insert(p1,n,t)在p1所指的位置插入n个新元素t,无返回值
-
reserve(n):若当前容量大于或等于n,什么也不做,否则扩大容器的容量,使得容器的容量不小于n
-
resize(n)改变容器的大小为n,如果原有的元素个数大于n,则删除容器末尾多余的元素;反之,在容器末尾会用默认构造函数填充
-
s.front()获取容器首元素的引用,s.back()获取尾元素的引用
-
s. at(index)返回索引所指向的数据
向量容器特有的操作:capacity() , reserve()