vector动态数组(纠正更新版)

一、定义和声明

——头文件和声明

他有一个特殊的头文件,和stl一样,都是定义名,叫vector。

先列一些stl的名字和头文件。

队列:

#include<queue>

queue<int> q;

priority_queue<int,vector<int>,greater<int> >pq;

栈:

#include<stack>

stack<int> s;

那么动态数组呢——

#include<vector>

vector<类型> 名字;

比如:

vector<int> a;

vector<char> c;

还有别的:

①vector<int> a(10);//10个数

②vector<int> a(10,1);//10个1

③int b[3]={0,1,2};

   vector<int> a(b,b+3);//头,尾+1

二、操作

a.push_back(k);//数组尾插入元素(又名赋值)

a.pop_back(k);//数组尾元素出来

a[i];//取a第i个数值,如cout<<a[i];——输出

a.size();//返回a大小

a.clear();//把a清空

a.empty();//判断a是否为空

a.front();//返回a的第一个元素

a.back();//返回a的最后一个元素

a.erase(a.begin(),a.end-1);//删除这一段

a.insert(a.begin()+1,5); //在这个位置插入5

a.insert(a.begin()+1,3,5);//在这个位置插入3个5

a.insert(a.begin()+1,b+3,b+6);////在这个位置插入b+3到b+6这一段(第三个元素到第五个元素)

a.resize(10); //将a的长度设为10

a.resize(10,2); //将a的长度设为10,不够的用2来填

a.reserve(100);//将a的元素个数扩充至100个。

a==b; //比较,还有>=,<=等操作

其实vector和stack、queue挺像的,换句话说,两个东西的结合体,有FILO、a.front()back()等操作。

三、注意

1.错误赋值:

vector<int> a;

for(int i=1;i<=1001;i++) a[i]=i+1;

千万别这么干。但在

vector<int> a(10);

这个情况下可以用a[3]=10;等语句(别用a[10]、a[100]……).

2.此物是FILO,所以嘛,中间的东西,出不来,进不了。头上的,也是一样,出不来,进不了,这就是个小问题。不过,空间现在比较足,不常用vector,或者空间不够,只能用时间换了。时间吗,一秒10^8-10^9次操作,只要稍稍优化就行了。除非是noi,别的没大关系。


总结:vector,属于典型的省空间、比较烦的那种,反正我没事不用,知道就好,也不管了。要用时再用哈。

这次主要对一些函数和赋值语句做了修改,再见。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,142评论 0 2
  • 容器 在实际的开发过程中, 数据结构本身的重要性不会逊于操作于数据结构的算法的重要性, 当程序中存在着对时间要求很...
    编程小兔崽阅读 4,788评论 0 1
  • 这几天比较忙,没时间日更,写短一点,500字左右吧。 今天说动态数组,关键词是动态,表明这个数组大小是不定的,做到...
    Simon李阅读 3,085评论 0 1
  • 容器的概念所谓STL容器,即是将最常运用的一些数据结构(data structures)实现出来。容器是指容纳特定...
    饭饭H阅读 3,021评论 0 0
  • 养护心经|让玫瑰养娇美一整周 2017-11-25 自接触鲜花领域,遇到最多问题就是:如何让花朵绽放得更长久...
    慕花无忧阅读 3,610评论 0 1

友情链接更多精彩内容