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

本文介绍了C++中vector数据结构的定义、初始化方法、相关函数如front(),pop_back(),push_back()等,以及迭代器的使用,重点强调了动态数组在编程中的便利性,不必总是从零开始编写复杂的库。
摘要由CSDN通过智能技术生成

        为什么开始先更新数据结构?博主其实一开始也不怎么喜欢调这些数据,觉得用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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值