一、简介
Vectors 包含着一系列连续存储的元素,其行为和数组类似。
访问Vector中的任意元素或从末尾添加元素都可以在O(1)内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是O(N)。
Constructors | 构造函数 |
Operators | 对vector进行赋值或比较 |
assign() | 对Vector中的元素赋值 |
at() | 返回指定位置的元素 |
back() | 返回最末一个元素 |
begin() | 返回第一个元素的迭代器 |
capacity() | 返回vector所能容纳的元素数量(在不重新分配内存的情况下) |
clear() | 清空所有元素 |
empty() | 判断Vector是否为空(返回true时为空) |
end() | 返回最末元素的迭代器(译注:实指向最末元素的下一个位置) |
erase() | 删除指定元素 |
front() | 返回第一个元素 |
get_allocator() | 返回vector的内存分配器 |
insert() | 插入元素到Vector中 |
max_size() | 返回Vector所能容纳元素的最大数量(上限) |
pop_back() | 移除最后一个元素 |
push_back() | 在Vector最后添加一个元素 |
rbegin() | 返回Vector尾部的逆迭代器 |
rend() | 返回Vector起始的逆迭代器 |
reserve() | 设置Vector最小的元素容纳数量 |
resize() | 改变Vector元素数量的大小 |
size() | 返回Vector元素数量的大小 |
swap() | 交换两个Vector |
二、完整程序代码
三、补充
vector应该说是在STL中使用最广泛的容器。大家知道,数组是几乎每一种语言都拥有的底层数据结构,但在我们的工作中,我们会大量的使用数组来表示同一类事物的一个集合。而vector实质上就是一个可以存储任何元素的动态数组。
vector虽然不是一个低级的数据结构,但是它各个操作的效率几乎是和数组相同的。只是它会使用比普通数组更多的空间。因为在vector因为空间不足而需要重新分配空间的时候,它一般会分配更多的空间(可能是当前size的1.5倍,这个是由具体实现定义的),以免每次插入一个新的元素的时候,都会重新分配空间。
重新分配空间是vector里面最没有效率的操作,所以在使用vector的时候要尽量避免重新分配空间。具体的方法是根据自己的实际需要来设定vector的capacity大小。
关于vector与list的详细比较,请参考这篇文章。
参考网站:http://www.cplusplus.com/reference/vector/vector/
****转载请注明出处:http://blog.csdn.net/synapse7/article/details/9749277****