vector数组用法及举例

Posted zmz-zero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector数组用法及举例相关的知识,希望对你有一定的参考价值。

vector详解

1.调用vector的头文件

技术图片

注意:c++编程中填写这个头文件

 

2.vector的用法

技术图片

注意:大概来讲,vector就是一个变长数组,与a[]这种普通数组不同的是,他不用定义多长,是根据用户的用法变化的,同时它的用法及方法也与普通数组不同

 

3.vector的存取方法及特殊

技术图片

技术图片

技术图片

注意:vector的存取与栈相同(即一种无盖有底的“洞”,从顶端存入,从顶端取出);

 

3.vector数据的读取及其他方法

技术图片

 

技术图片

注意:iterator是一种迭代器,即一种读取器,其功能类似for循环;利用iterator来输出或存取大量的数据;


 

vector优势:

大小能否变化

vector属于变长容器,即可以根据数据的插入删除重新构建容器容量,但array和数组属于定长容量。

初始化

数组不能将数组的内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值,而向量可以。

vector提供了更好的数据访问机制,即可以使用及at访问方式,使得访问更加安全。而数组只能通过下标访问,在程序的设计过程中,更容易引发访问错误。

vector提供了size和判空的获取机制,而数组只能通过遍历或者通过额外的变量记录数组的size。

vector提供了可以动态插入和删除元素的机制,而array和数组则无法做到,或者说array和数组需要完成该功能则需要自己实现完成。

深度搜索:内存中的位置

C++中数组为内置的数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成;vector,存放在堆中,由STL库中程序负责内存的分配和释放,使用方便。


 

vector实例帮助理解

题目描述

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。

输入格式

一行内输入一串整数,以0结束,以空格间隔。

输出格式

一行内倒着输出这一串整数,以空格间隔。

输入输出样例

输入

3 65 23 5 34 1 30 0

输出

30 1 34 5 23 65 3

具体代码:

#include<iostream>
#include<vector>
using namespace std;

int main(){
	vector<int> a;
	int count=0;
	int x;
  while(cin>>x){
  	if(x==0) break;
  	else a.push_back(x);
  }
  for(vector<int>::iterator it=a.end()-1;it>=a.begin();it--){  //iterator迭代器输入输出
  	cout<<(*it)<<" ";
  }   
	
	return 0;
}

 使用iterator迭代器进行迭代输入输出;

注意:vector数组由于其特殊性适用一些算法,但也不适用一些场合,所以一般使用普通的数组即可;

 

以上是关于vector数组用法及举例的主要内容,如果未能解决你的问题,请参考以下文章

C++vector用法详解

linux进程间通信之Posix共享内存用法详解及代码举例

问题:vector的reserve并不会改变size的大小

vector与数组的习惯用法

vector容器用法详解

numpy数组中一些常见的操作以及用法举例