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()

删除最后一个数据

posted @   HappyBobb  阅读(6)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示