3.3.1 vector是什么
vector是线性容器,它的元素严格按照线性序列排序,和动态数组很相似。和数组类似的是,它的元素存储在一块连续的存储空间中,这也意味着不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问。和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间。
vector的优点如下所述。
(1)可以使用下标访问个别的元素。
(2)迭代器可以按照不同的方式遍历容器。
(3)可以在容器的末尾增加或删除元素。
和数组相比,虽然容器在自动处理容量的大小时会消耗更多的内存,但是容器能提供和数组一样的性能,而且能很好地调整存储空间大小。
和其他标准的顺序容器相比,vector能更有效访问容器内的元素和在末尾添加和删除元素;而在其他位置添加和删除元素,vector则不及其他顺序容器,在迭代器和引用也不比lists支持的好。
容器的大小和容器的容量是有区别的,大小是指元素的个数,容量是分配的内存大小,容量一般不小于容器的大小。vector::size()返回容器的大小,vector::capacity()返回容量值,容量多于容器大小的部分用于以防容器大小的增加使用。每次重新分配内存都会很影响程序的性能,所以一般分配的容量都大于容器的大小,若要自己指定分配的容量的大小,则可以使用vector::reserve(),但是规定的值要大于size()值。
使用vector时需要包含的头文件#include<vector>。
时间: 2024-10-26 17:02:52