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数组由于其特殊性适用一些算法,但也不适用一些场合,所以一般使用普通的数组即可;
原文地址:https://www.cnblogs.com/zmz-zero/p/12260724.html