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. 使用SecureCRT连接ubuntu

    SecureCRT SSH2连接新装的UBUNTU 14.04 LTS 发现UBUNTU默认没有安装SSH 服务 在UBUNTU上 sudo apt-get install openssh-serve ...

  2. 简述AFN(AFNetWorking 2.X)的实现分析和简单使用【转】

    [转载] Axc注:版本为AFNetWorking 2.6    3.0需要修改大部分对象 一:声明本 人以前一直是使用ASI网络请求类库的.最近才开始了解使用AFNetworing这个类库.网上也肯 ...

  3. Linus:利用二级指针删除单向链表

    Linus大神在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level codi ...

  4. BeanNameViewResolver

    As described in the documentation, BeanNameViewResolver resolves Views declared as beans. Usually yo ...

  5. Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

    负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...

  6. 【C++】error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

    刷leetcode 263.uglynumber时,代码如下: class Solution { public: bool isUgly(int num) { int temp = num; ) re ...

  7. The Top Five Software Project Risks

    Risk management (or more precisely risk avoidance) is a critical topic, but one that is often dull t ...

  8. 解决libc.so.6: version `GLIBC_2.14' not found问题

    今天centos新机器上运行项目的时候出现题目所示的错误,搜索后发现是底层glibc 版本太低导致. strings /lib64/libc.so.6 |grep GLIBC_ 使用上面的命令发现 g ...

  9. JMeter学习-001-JMeter初识

    Apache JMeter是Apache组织开发的基于Java的开源压力测试工具(个人发现也可用于接口测试).用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于 ...

  10. ELK-Python(二)

    不具有通用性,留作纪念. [root@GXB-CTRLCENTER python]# cat insert_pv.py #!/usr/bin/env python # -*- coding:utf-8 ...