[C++]什么是vector?

vector收录在STL(C++标准库)里,是一种特殊的数据结构,名字叫做“动态数组”或者“不定长数组”,有时也被翻译成“容器”。其实就是一种非静态数组,可以进行修改、增长。

一、头文件

调用Vector需要使用2个头文件:
#include
using namespace std;

二、vector的声明

1、需要声明数组中存储的数据类型,格式为:
vector <数据类型> 动态数组名;
如: vector array;

2、声明的时候可以一并赋初值,比如:
vector M(a,b);//在M里装a个b

vector N(a); //在N里装a个0

vector B(A);//一个和A一模一样的动态数组

vector C(B.begin()+l,B.end()-r);//继承B动态数组下标[l,B.end()-r)的值

三、vector的基本操作

以vector v为例:

① v[i]或v.at(i)//返回v[i]的值

② v.size();//返回v数组元素总个数

③ v.front();//返回v数组第一个元素的值

④ v.back();//返回v数组最后一个元素的值

⑤ v.clear();//清空v数组

⑥ v.begin();//返回v数组第一个数的地址

⑦ v.end();//返回v数组最后一个数的地址

⑧ v.empty();//判断v数组是否为空,是空则返回1(true),非空(有元素)则返回0(false)

⑨ v.swap(v1);//v1是另一个动态数组,将v和v1元素互换

⑩ swap(v,v1);//同⑨

11 v.capacity();//返回v数组的长度,就相当于int v[20000];的20000

12 v.resize(k);//将v数组的长度设为k

注意:再次重申,vector的下标是从0开始的!

注意:除v[i]外,其余都是vector的自带函数,因此必须添上括号!

四、vector数组的插入

① v.push_back(a);//在v数组的尾部插入数a

比如:

有一个动态数组x:2017 2333

调用x.push_back(666);

则x:2017 2333 666

② v.insert(v.begin()+k,a);//在下标k的前面插入数a,k之后的数依次后退一位

//记住,下标是从0开始的!

比如:

动态数组x:1 2 3 4 5 6

调用x.insert(x.begin()+2,100);

则x:1 2 100 3 4 5 6

③ x.insert(x.begin()+k,p,a);//在下标k前面插入p个a

五、vector的删除

① v.pop_back()//删除最后一个元素

② v.erase(v.begin()+k);//删除下标为k的数,返回下一个位置的下标

③ v.erase(v.begin()+l,v.end()-r);//删除下标[l,v.end()-r)的元素

六、vector内存机制

当向vector内新添加变量超过原有的数组长度时,数组的长度会翻倍,所以提前预留好足够长度,以免浪费空间,程序运行时间长

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值