【零基础算法】Vector动态数组

        为什么开始先更新数据结构?博主其实一开始也不怎么喜欢调这些数据,觉得用C语言造轮子才是最好的。后面学习过程中学习的算法逐渐复杂,实际上会发现,了解和调用一些已经写好的库工具是很方便的一件事,我们需要做的是知道如何它的底层和如何实现即可,不需要总是用C语言去造轮子。

 一,定义

vector为可变长数组(动态数组),可以随时添加数值和删除元素。同时需要注意:在局部函数中开vector数组是在堆空间开辟的。使用时需要包含头文件<vector>

二,初始化

(1)一维初始化

vector<int> num;
vector<double> num;
vector<node> num;

(2)指定长度和初始化

vector<int> num(n);
//长度为n的动态数组
//指定长度之后就相当于正常数组

(3)初始化多个元素

vector<int> num{1,2,3,4,5}

(4)拷贝初始化

vector<int> num(n+1,0);
vector<int> num2(num);
//拷贝初始化时要注意类型要相同

(5)二维初始化

vector<int> num[5];
//第一位固定为5,第二维长度可变

vector<vector<int>>num;
//行列长度均可变

vector支持随机访问和下标访问 

三,相关函数

函数作用
front()返回第一个数据
pop_back()

删除最后一个数据

push_back()

在尾部加一个数据

size()

返回数据类型(unsigned类型!!!!)

clear()

清除所有元素

resize(n,v)改变数组大小为n,n个空间赋值v(不指定默认为0)
insert(it,x)

向迭代器it处插入一个元素

erase(first,last)删除(first,last)元素
begin()

返回首元素迭代器

end()

返回最后一个元素后一个位置的迭代器

empty()判断是否为空。

排序可以使用sort(num.begin(),num.end());

迭代器:

vector<int> num
vector<int>::iterator it = num.begin();

posted @   C_Ryson  阅读(38)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示