向量是可以改变大小的序列容器. Container是保存相同类型数据的对象.序列容器严格按线性顺序存储元素.
Vector将元素存储在连续的内存位置,并允许使用下标operator []直接访问任何元素.与数组不同,vector可以在运行时根据需要缩小或扩展.向量的存储是自动处理的.
为了在运行时支持收缩和扩展功能,向量容器可以分配一些额外的存储空间以适应可能的增长,因此容器的实际容量大于大小.因此,与数组相比,vector可以消耗更多内存,以换取管理存储和以有效方式动态增长的能力.
零大小的向量也是有效的.在那种情况下,vector.begin()和vector.end()指向相同的位置.但是调用front()或back()的行为是未定义的.
下面是来自< vector>的std :: vector的定义.头文件
template < class T, class Alloc = allocator<T> > class vector;
T : 包含的元素的类型.
T可以被任何其他数据类型替换,包括用户定义的类型.
Alloc : 分配器对象的类型.
默认情况下,使用allocator类模板,该模板定义了最简单的内存分配模型,并且与值无关.
以下成员类型可用作参数或按成员函数返回类型.
Sr.No. | 成员类型 | 定义 |
---|---|---|
1 | value_type | T(模板的第一个参数) |
2 | allocator_type | Alloc(模板的第二个参数) |
3 | reference | value_type& |
4 | const_reference | const value_type& |
5 | pointer | value_type * |
6 | const_pointer | const value_type * |
7 | iterator | 随机访问iterator到value_type |
8 | const_iterator | 随机访问迭代器到const value_type |
9 | reverse_iterator | std :: reverse_iterator< iterator> |
10 | const_reverse_iterator | std :: reverse_iterator< const_iterator> |
11 | size_type | size_t |
12 | difference_type | ptrdiff_t |