STL之vector

C++ STL之vector


1.介绍

vector充当动态数组,其中很多的方法函数为解题时提供了很多便利。

头文件

#include<vector>

当然也可以使用c++的万能头文件

#include<bits/stdc++.h>

一维vector的初始化

vector<int> v;//定义了一个int类型的动态数组
vector<double> v;//定义了一个double类型的动态数组
vector<int> v(n);//定义了一个长度为n的数组,默认都为0
vector<int> v(n,1);//这里将数组里面的所有元素都初始化为1
vector<node> v;//(常用)这里定义了一个结构体类型的数组
//在代码的前面还需要写一个node的结构体
vector<int> v{1,2,3};//这里的初始化每个值不同

二维vector的初始化

vector<int> v[5];//特别要注意的一点是,当括号为()时,定义的是一个一维数组
//而[]则为二维数组。定义的这个数组行是不可变的为5,但是列是可以变化的
//即第一维固定为5,第二维长度可变
//长度为5的数组v,每一个存储的都是vector<int>类型,以下为操作
v[1].push_back(3);
v[2].push_back(27);
//以下再写一个二维均可变化的
vector<vector<int> > v;//可以在v数组中装入多个数组

2.函数

代码解释
v.front()返回第一个数据
v.back()返回最后一个数据
v.pop_back()删除了最后一个数据
v.push_back(val)在尾部加入一个数据
v.size()返回数据的个数
v.clear()清除元素
v.empty()判断是否为空
v.resize(n,v)改变数组大小
v.begin()、v.end()表示返回第一个或者最后一个元素的后一个地址
v.insert(v.begin()+3,27)在v[3]的位置插入27

访问方式

访问方式有很多,这里介绍两种基本的。

1.下标访问

for(int i=0;i<3;i++){
    v.push_back(i);
}
for(int i=0;i<3;i++){
    cout<<v[i]<<" ";
}

2.迭代器访问

//首先要声明一个迭代器类型的变量it
vector v{1,2,3};
vector<int>::iterator it;
for(it=v.begin();it!=v.end();it++){
    cout<<*it<<" ";
}

以上是vector的一些常见用法,还有一些具体的解释不是很到位,以其其他函数我没有枚举,可以看其他博客继续学习,欢迎批评与指正!

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值