动态数组vector基本用法

头文件:#include “vector”
定义:vector v;
特性:动态数组存储空间为线性有序。

基本操作

1、初始化

vector<int>v;			//定义,无空间

vector<int>v(10);			//定义并分配10个空间

vector<int>v(10,3);			//定义并分配10个空间,初值全为3

vector<int>b(10,3);
vector<int>v(b);			//将b赋值给v

vector<int>b(10,3);
vector<int>v(b.begin(),b.begin()+3);	//将b中前3个元素赋给a

int b[7]={1,2,3,4,5,6,7};
vector<int> a(b,b+7);		//将b中前7个元素赋给a

vector<int> a;
a.assign(10,1);				//先定义,后赋值初始化,在assign内进行上方语句

2、下标直接获取

a[n]:n为数值下标,可直接对vector内数据进行操作,下标从零开始,不能通过a[n]对未申请的存储空间插入数据

3、循环遍历(迭代法)

int b[7]={1,2,3,4,5,6,7};
vector<int> a(b,b+7);

for(int i=0;i<a.size();i++)		//方法1
	cout<<a[i]<<" ";

for(vector<int>::iterator it=a.begin();it!=a.end();it++)		//方法2
	cout<<*it<<" ";				//it为迭代去,通过*it获取元素

常用函数

1、获取位置

1)v.begin():返回第一个元素的迭代器
2)v.end():返回末尾元素后一个元素的迭代器

2、获取元素

1)v.back():返回数组的最后一个元素,
2)v.front():返回数组的第一个元素

3、长度

v.size()

4、清空

v.clear()

5、判断空

v.empty()

6、删除

1)v.pop_back():删除a向量的最后一个元素
2)v.erase(v.begin(),v.begin()+3):删除前3个元素(不包括a.begin()+3)

7、添加

v.push_back(value); //在v的最后添加一个元素

8、插入

1)v.insert(v.begin()+n,value):在v的n+1位置插入一个元素

int b[] = {1,2,3,4,6,7,8,9};
vector<int> v(b,b+8);
v.insert(v.begin()+4,5);		//1 2 3 4 5 6 7 8 9

2)v.insert(v.begin(),n,value):在v的开始位置插入n个元素value

vector<int> v;
v.push_back(10);
v.insert(v.begin(),b,b+6);		//5 5 5 5 5 5 10

3)v.insert(v.begin(),b,b+6):b为数组,在v的开始位置插入b的前6个元素(不包括b+6)

int b[] = {1,2,3,4,5,6,7,8,9};
vector<int> v;
v.push_back(10);
v.insert(v.begin(),b,b+6);		//1 2 3 4 5 6 10

9、比较

两个动态数组的比较:由数组名进行比较即可,向量的比较操作还有 != 、>=、 >、 <=、 <

int x[] = {1,2,3,4,6,7,8,9};
	vector<int> b(x,x+8);
	vector<int> a(x,x+8);
	if(b==a)
		cout<<"yes";

其它函数

v.capacity();		//返回a在内存中总共可以容纳的元素个数
v.resize(10);		//将a的现有元素个数调整至10个,多则删,少则补,其值随机
v.resize(10,2);		//将a的现有元素个数调整至10个,多则删,少则补,其值为2
v.reserve(100);		//将a的容量扩充至100
v.swap(b);		//b为向量,将a中的元素和b中的元素整体交换
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值