顺序容器的种类有:vector,list、deque

顺序容器适配器:

stack     //先进后出   栈

queue   //先进先出   队列

priority_queue   //也优先管理级的优先队列

1.头文件

#include <vector>
#include <list>
#include <deque> //每一种头文件对应一种顺序容器
#include <queue> //队列 优先队列的头文件
#include <stack> //栈的头文件

2.定义

    vector<int>v;
list<string> l;
deque<struct Node>dq;
//容器类型<容器保存的数据类型>容器名称;

3.初始化   (以vector类型为例)

    vector<T>v1;      //创建一个空的容器
vector<T>v2(n,i); //创建一个vector容器 其中包括n个值为i的元素
vector<T>v3(v2); //创建一个v3 是v2的副本
vector<T>v4(n); //创建一个有初始化的元素的n个副本
vector<T>v5(v2.begin(),v2.end()-); //创建v5 值为索引的中间值

注意:在初始化时,不同类型的容器之间   不能进行值的初始化

注意容器的定义时   有一种特殊情况    看下面的代码“

     vector< vector<int> >v3;   //ok
vector<vector<int> >v4; //ok
vector<vector<int>>v5; //error

我们在写的时候    建议使用第一种写法   养成一个好的习惯

其实这第三种定义之所以不行   是因为它俩个>符号写在了一起   就会合成一个>>符号

4.迭代器的运算

所有迭代器都支持的运算

     *iter      //返回迭代器所指向的元素的引用
iter->name //获取迭代器指向元素中的name 容器中保持的是结构体 相等于(*iter).name.
iter++(--) //iter 加减
++(--)iter //和上面一样 只存在先加减和先运算的不同
iter1==(!=)iter2 //判断俩个迭代器所指 的元素是同一个

以下表图为string   vector   deque 类型迭代器支持的额外运算

注意:list容器只提供   上面所有迭代器都提供的运算    不能使用加减法与大小比较   (加减不同于自增自减)

C++ 顺序容器(vector,list、deque,stack,queue)的更多相关文章

  1. C++ 顺序容器 vector list deque 之比较

    在C++标准库中定义了三种顺序容器类型:vector,list和deque.所谓顺序容器就是根据位置来存储和访问元素,元素的排列次序与元素的值无关,而是由元素添加到容器的次序决定的. vector的底 ...

  2. C++顺序容器vector、deque、list

    1.容器元素类型 C++中大多数数据类型能够作为容器的元素类型.容器元素类型必须满足一下两个条件:支持赋值和复制操作. 所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的 ...

  3. 第十篇:顺序容器vector,deque,list的选用规则

    前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(v ...

  4. 顺序容器vector,deque,list的选用规则

    前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(v ...

  5. 【c++进阶:c++ 顺序容器vector,string,deque,list,forward_list,array常用性质】

    常用5种顺序容器性质: https://blog.csdn.net/oil_you/article/details/82821833 关于deque https://www.cnblogs.com/L ...

  6. STL容器 vector,list,deque 性能比较

    C++的STL模板库中提供了3种容器类:vector,list,deque对于这三种容器,在觉得好用的同时,经常会让我们困惑应该选择哪一种来实现我们的逻辑.在少量数据操作的程序中随便哪一种用起来感觉差 ...

  7. programming review (c++): (1)vector, linked list, stack, queue, map, string, bit manipulation

    编程题常用知识点的review. most important: 想好(1)详尽步骤(2)边界特例,再开始写代码. I.vector #include <iostream> //0.头文件 ...

  8. C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用

    序列性容器::(vector和list和deque)   erase迭代器不仅使所有指向被删元素的迭代器失效,而且使被   删元素之后的所有迭代器失效,所以不能使用erase(iter++)的方 式, ...

  9. 2.1顺序容器-vector

    vector 1) *   :使用vector必须包含vector头文件.可变长的动态数组,支持随机访问,所有STL算法都可以对vector进行操作. ** :随机根据下标访问某个元素的时间是一个常数 ...

随机推荐

  1. php技能树---大神的进阶之路

    PHP7 迎来巨大的性能提升,又一次回到关注的焦点.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段 ...

  2. PHP Socket 编程之9个主要函数的使用之测试案例

    php的socket编程算是比较难以理解的东西吧,不过,我们只要理解socket几个函数之间的关系,以及它们所扮演的角色,那么理解起来应该不是很难了,在笔者看来,socket编程,其实就是建立一个网络 ...

  3. 洛谷P1514引水入城

    题目 搜索加贪心其实并不需要用到\(DP\),搜索也是比较简单地搜索. 对于每个第一行的城市进行类似于滑雪那道题的搜索,然后记录最后一行它所覆盖的区间,易得一个一行城市只会有一个区间.然后可以在最后进 ...

  4. Day13:H5+JS+C3

    css布局中,什么是BFC BFC是Block formatting context的缩写,表示"块级格式化上下文". 设置BFC的元素,是一个独立的渲染区域,只有Block-le ...

  5. mysql存储html代码之导出后无法导入问题

    我用mysql的text类型存储了一些html代码,然后用navicat for mysql导出,然后再次导入的时候,就死活导不进去. mysql提示的错误是:this saves the data  ...

  6. 44个Java性能优化

    44个Java性能优化 首先,代码优化的目标是: 减小代码的体积 提高代码运行效率 代码优化细节 1 .尽量指定类.方法的final修饰符 ​ 带有final修饰符的类是不可派生的.在Java核心AP ...

  7. 【CSP模拟赛】避难向导(倍增lca&树的直径)

    耐力OIer,一天7篇博客 题目描述 “特大新闻,特大新闻!全国爆发了一种极其可怕的病毒,已经开始在各个城市 中传播开来!全国陷入了巨大的危机!大量居民陷入恐慌,想要逃到其它城市以 避难!经调查显示, ...

  8. js检测手机上是否有此APP,有的话打开应用,没有的话跳转到appstore

    //html代码中 的 a 标签,以微信为例,默认的是调用weixin scheme,去打开本机的微信,如果没有则跳转到相应连接 <a href="weixin://" cl ...

  9. ubuntu之路——day10.6 如何理解人类表现和超过人类表现

    从某种角度来说,已知的人类最佳表现其实可以被当做贝叶斯最优错误,对于医学图像分类可以参见下图中的例子. 那么如何理解超过人类表现,在哪些领域机器已经做到了超越人类呢?

  10. java本地与树莓派中采用UDP传输文本、图片

    今天解决了一个困扰好几天的问题,由于比赛需要,需要用java语言,并采用UDP传输协议,让树莓派与服务器(就是本机)建立连接传输视频,图片. 由于UDP是建立在无连接的协议上,因此就碰到了一个很尴尬的 ...