vector(动态数组或向量):动态分配内存空间的线性储存结构。  

需要包括头文件<vector>

定义:

vector<数据类型> 变量名;

Eg:

vector<int> s; //定义了一个数据类型为整形的动态数组;

基本操作(红色标识为常用操作):

  s[i]直接以下标方式访问容器中的元素。 
      s.front()  返回首元素。
  s.back()  返回尾元素。  
  s.push_back(x)向表尾插入元素x。
  s.size()  返回表长。 
  s.empty()  当表空时,返回真,否则返回假。
  s.pop_back() 删除表尾元素。
  s.begin()  返回指向首元素的随机存取迭代器。
  s.end()   返回指向尾元素的下一个位置的随机存取迭代器。
  s.insert(it, x) 向迭代器it 指向的元素前插入新元素x。
  s.insert(it, n, x)向迭代器it 指向的元素前插入n 个x。
  s.insert(it, first, last)将由迭代器first 和last 所指定的序列[first, last)插入到迭代器it 指向的元素前面。 
  s.erase(it)删除由迭代器it 所指向的元素。
  s.erase(first, last)删除由迭代器first 和last 所指定的序列[first, last)。    
  s.clear()删除容器中的所有的元素。
  s.swap(v)将s 与另一个vector 对象v 进行交换。

代码解释:

#include<vector>
#include<iostream>

using namespace std;

vector <int> a;//定义整型动态数组a;
int main()
  {
   a.push_back(1);//在表末压入数字1;
   a.push_back(2);
   a.push_back(3);
   cout<<*a.end()<<endl;//用于解释迭代器所指向的为表末元素的下一个储存位置;
    vector <int> ::iterator itor=a.begin();//迭代器只了解即可,蓝色标识部分为迭代器的类型,为整型动态数组的迭代器ator,初始位置为a.begin();
   for (;itor!=a.end();itor++)//用迭代器来遍历表中的所有元素;
     cout<<*itor<<endl;//迭代器类似于指针,需要用*运算来取得其内容;
   for (int i=0;i<a.size();i++)
   cout<<a[i]<<endl; //利用下标法来遍历表中所有元素;
   a.pop_back();//删除表末最后一个元素;3 out
   cout<<*(a.end()-1)<<endl;//输出表末最后一个元素,这时输出的是2;
   return 0;
  }

//若看不太懂,推荐C++远征之模板篇第六章 标准模板类。

C++之路起航——标准模板库(vector)的更多相关文章

  1. C++之路起航——标准模板库(list)

    list(链表):http://baike.baidu.com/link?url=gkVdBlHEzy6ssrgT5Iy2wze4jl37ka1G45TRpUHrQSYFZQg2HimtUCePV0t ...

  2. C++之路起航——标准模板库(queue)

    queue: FIFO队列:先进先出队列. 优先队列:对队列中的元素按优先级的大小输出. 定义: FIFO队列: queue<数据类性>变量名. 优先队列:priority_queue&l ...

  3. C++之路起航——标准模板库(deque)

    deque(双端队列):http://baike.baidu.com/link?url=JTvA2cuLubptctHZwFxswvlZvxNdFOxmifsYCGLj5IZF-Tj4rbWLv8Jn ...

  4. C++之路起航——标准模板库(set)

    set(集合):http://baike.baidu.com/link?url=cb68AB-3qfEK8RoaGHJFClb4ZiWpJfc32lPOLtaNUrdxntFC738zCZsCiUlf ...

  5. [转载]C++之路起航——标准模板库(deque)

    转自:https://www.cnblogs.com/grhyxzc/p/5074061.html deque(双端队列):http://baike.baidu.com/link?url=JTvA2c ...

  6. C++:标准模板库vector

    一:介绍 vector是C++标准模板库,是一个容器,底层是数组,为连续内存. 命名空间为std,所属头文件为<vector>   注意:不是<vector.h> vector ...

  7. 标准模板库(STL)学习探究之vector容器

    标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...

  8. C++标准模板库(STL)之Vector

    在C中,有很多东西需要自己实现.C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能. 具体容器链 ...

  9. C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

    摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动 ...

随机推荐

  1. global.asax、global.asax.compiled、PrecompiledApp.config三者关系

    global.asax用WebDeploy发布后,会在bin下面产生一个global.asax.compiled,同时根目录下产生PrecompiledApp.config. 正常情况下global. ...

  2. .Net搭建的WebService测试页使用TextArea大文本框方便调试

    用.Net搭建的WebService,系统默认提供了测试页,供大家输入参数进行测试.但因为参数输入框使用的是单行input控件,导致无法输入换行文本,使得有些参数(如换行的xml)无法输入,及其不便. ...

  3. //四舍五入//得到倒序//比较字符串//拦截时间,实现超时锁屏//判断是否越狱//配置PodFile//Storyboard中跳转操作//处理不可逆的push界面操作

    //处理不可逆的push界面操作 VerifyRealNameViewController *verifyRealNameCtrl = [VerifyRealNameViewController vi ...

  4. docker sonaqube

    postgresql:   image: orchardup/postgresql:latest   environment:   - POSTGRESQL_USER=sonar   - POSTGR ...

  5. drop、 truncate 、 delete

    相同点: truncate和不带where子句的delete, 以及drop都会删除表内的数据     不同点: 1. truncate和 delete只删除数据不删除表的结构 drop语句将删除表的 ...

  6. HTML与CSS的关系

    1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2. CSS样式是表现.就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片. ...

  7. JQuery直接调用asp.net后台WebMethod方法

    利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法.[WebMethod]   命名空间 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的 ...

  8. Android笔记:string-array数据

    把相应的数据放到values文件夹的arrays.xml文件里 String数组 <?xml version="1.0" encoding="utf-8" ...

  9. (转)linux运行tomcat时JRE_HOME显示不对怎么办?

    PS:以前也没出现这些问题,重装了一下系统,感觉什么都让我撞上了.Using CATALINA_BASE:   /usr/share/tomcat7Using CATALINA_HOME:   /us ...

  10. 打补丁patch 命令使用

    打补丁patch 命令使用 http://www.cnblogs.com/huanghuang/archive/2011/07/14/2106402.html patch 命令用于打补丁,补丁文件是使 ...