vector动态数组

一、简介

头文件:<vector>

随机访问时间为常数。在尾部添加速度很快,在中间插入慢。实际上就是动态数组,vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string对象一样,标准库负责管理存储元素的相关内存。我们把vector称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。使用vector之前,必须包含相应的头文件。

 

二、基本操作

声明: 
	
	vector<int> V; //创建一个数据类型为int的容器 
	
	vector<string> V;//创建一个数据类型为string的容器 
	
	vector<T> v2(v1);//v2是v1的一个副本。

	vector<T> v3(n,i);//v3包含n个值为i的元素。

	vector<T> v4(n);//v4含有值初始化的元素的n个副本。
	
	vector<vector<int> > b(10,vector<int>(5));  //创建一个10*5的int型二维动态数组 
	--------------------------------------------------
	
	插入: 
	
	V.push_back(t)//在 v 的末尾增加一个值为 t 的元素。
	
	V.insert(V.begin()+2,1);//在迭代器中第二个元素前插入新元素  
	
	V.insert(V.begin(), 3, 1000) ;//将1000分别插入到向量元素位置的0-2处(共3个元素)
	
	V.insert(V.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前
	
	-------------------------------------------------------------
	
	删除:
	
	V.clear() //清空向量中的元素
	
	V.pop_back() // 删除最后一个数据。
	
	V.erase(pos) // 删除pos位置的数据,传回下一个数据的位置。
	
	V.erase(beg,end) //删除[beg,end)区间的数据,传回下一个数据的位置。
	
	V.pop_back()// 删除最后一个数据。
	--------------------------------------------------------
	
	访问:
	 
	find(V.begin(),V.end(),value);//value为要查找的值,该函数返回一个指向对应元素的迭代器
	
	V[n]//返回 v 中位置为 n 的元素。
	
	*V.begin()+i //访问第i个元素 / V.end() 	
	
	V.back()  //返回最后一个元素 
	
	V.front() // 反回第一个元素。
	
	---------------------------------------------------------
	
	其他: 
	
	V.empty()//如果 v 为空,则返回 true, 否则返回 false 。

	V.size()//返回 v 中元素的个数。
	
	V1=V2//把 v1 的元素替换为 v2 中元素的副本。
	
	vector<int>::iterator it;//创建一个int型的vector迭代器
	 
	V1==V2//如果 v1 与 v2 相等,则返回 true 。

	!=, <, <=, >, >=//保持这些操作符惯有的含义。
	
	V.max_size() // 返回容器中最大数据的数量。
	
	V1.swap(V2);//V1与V2进行交换
	 
	V.assign(beg,end)// 将[beg; end)区间中的数据赋值给c。
	
	V.assign(n,elem)//将n个elem的拷贝赋值给V。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值