STL容器之vector
STL容器是c++提供的一种数据结构,包含栈、队列、链表、映射等
vector被人翻译成动态数组
数组大家都了解过,但数组的大小是指定的,而动态数组的大小可以不声明
温馨提示:vector常数很小,据说可以卡过树形结构
在声明vector时,必须加上头文件
#include <vector>
vector的声明
vector的声明方式如下:
vector<typename> name;
vector<typename> name(length);
vector<typename> name(length, value);
其中,typename表示数组类型,length表示长度,value表示值
第三种定义代表定义一个长度为length的vector容器name,其所有的值为value
vector的遍历
vector遍历有两种,第一,按照数组方式遍历
如定义:
vector<int> vec(15);
则可以这样遍历:
for(int i = 1; i <= 5; i++)
{
cin >> vec[i];
}
for(int i = 5; i >= 1; i--)
{
cout << vec[i] << " ";
}
读入: 1 2 3 4 5
输出: 5 4 3 2 1
当然,还可以用迭代器遍历
定义:
vector<int> vec(5);
遍历:
for(vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)//是什么类型的vector就用什么类型的迭代器,迭代器++通常在前面
{
cin >> *it;//通过*迭代器访问值
}
for(vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
{
cout << *it << " ";
}
其用法相同
vector常用函数
1、clear()
clear用于清空vector,复杂度O(n)
如:
vector<int> vec(10);
vec[0] = 0;
vec.clear();
2、insert(int x)
将x放入某个vector中,时间复杂度O(n)
如:
vector<int> vec(10);
vec.insert(1);
3、begin()
返回vector容器的首个数据的迭代器
4、end()
返回vector容器最后一个数据的迭代器 + 1
5、empty()
判断vector是否为空(空返回true,不然返回false) 其作用在于如果vector已经为空clear会RE
6、push_back(int x)
将x推入vector中
7、pop_back()
删除最后一个数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)