01 vector的定义
vector相当于变长数组,若使用需要添加vector头文件。即#include <vector>.
vector<typename> name;
02 vector容器内元素的访问
(1)通过下标访问
即直接访问 vectorname[index]。
(2)通过迭代器访问
首先,什么是迭代器? 迭代器是一种类似于指针的东西,其定义为
vector<typename>::iterator it;
这样我们就得到了迭代器it,并可以通过*it来访问vector里的元素。
下面介绍两个函数:begin()和end()
- begin() : 取vectorname的首元素地址
- end() :取vectorname的尾地址的下一个地址
下面举一个例子:
for(vector<int>::itarator it = vi.begin(); it != vi.end(); it++)
{
printf("%d",*it);
}
注1:vector的迭代器不支持it < vi.end()写法,只能写it != vi.end()。
注2:在常用STL容器中,只有在vector和string中才允许使用vi.begin()+3这种迭代器加上整数的写法。
03 vector常用函数
(1)push_back()
push_back(x)就是在vector后面添加一个元素x,时间复杂度为O(1)。
(2)pop_back()
pop_back()用以删除vector的尾元素,时间复杂度为O(1)。
(3)size()
size()用来获得vector中的元素个数,返回值为unsigned类型,时间复杂度为O(1)。
(4)clear()
clear()用来清空vector中的所有元素,时间复杂度为O(N),N为vector元素个数。
(5)insert()
insert(it,x)用来向vector的任意迭代器it处插入一个元素x,时间复杂度为O(N)。
(6)erase()
-
删除单个元素
erase(it)即删除迭代器为it处的元素。 -
删除一个区间内的所有元素
erase(first,last)即删除[first,last)内的所有元素。
04 vector的常见用途
- 储存数据
- 用邻接表储存图
本文详细介绍了C++ STL中的vector容器,包括其定义、元素访问方式、常用函数及应用场景。探讨了如何通过下标和迭代器访问元素,解析了push_back、pop_back、size、clear、insert和erase等函数的使用方法和时间复杂度。

7735

被折叠的 条评论
为什么被折叠?



