zoukankan      html  css  js  c++  java
  • C++学习6 顺序容器

    C++学习6 顺序容器

    什么是容器?

    容器的概念并没有发现,我倾向于理解其为:容纳若干元素的集合。

    什么是顺序容器?

    我认为:顺序容器首先是一种数据结构,他使得里面的每个元素都具有顺序性。这种顺序只代表位置(或者索引)。

    下面就给出一点顺序容器的例子吧!

    1. vector 这个我们见过了。相当于一个储存着同种元素的可变大小的东西。他支持快速随机访问。一般只在尾部插入删除数据。
    2. deque。 双端队列。支持快速随机访问。 他在首尾两端插入删除数据的速度比较快。
    3. list 双向链表。 只支持双向顺序访问(链表嘛!)再链表的任何位置插入和删除都很快。
    4. forward_list 单相链表。只支持正向访问。在链表的任何位置插入和删除都很快。
    5. array 固定大小数组。支持快速随机访问。不能添加删除元素。
    6. string 字符串,这个不多说了。随机访问块,在尾部插入删除快。只适合于字符串一般。

    对于使用建议详见293页。总结起来一句话就是:能用vector就用vector,千方百计地试图用vector!

    对顺序容器一般如此使用:顺序容器名<元素类型> ,例如:vector<vector< int > >

    什么是迭代器?

    同样地迭代器的概念并没有给出。我理解的迭代器是指容器的特定的元素。比如说对于顺序容器,我们可以使用begin()和end()方法来访问容器中的元素。他们具有如下特点:

    1. begin代表首元素;end可以代表尾元素的下一个元素。即容器的范围是一个左闭区间:[begin,end)
    2. 可以将begin递增来使其到达end。即end无法到达begin的前端
    3. 如果一个顺序容器的begin和end相同,则该容器为空
      常常这样使用:
    while(begin!=end)
    {
    *begin=val;
    ++bagin;
    }

    目前看到了第315页,下周见。。。。

  • 相关阅读:
    svn使用
    navicat 15 安装破解
    thinkpad交换Fn和Ctrl
    emqx_mqtt安装+mqtt管理工具
    Adobe XD使用
    FolderPainter:windows系统为文件夹设置不同颜色
    rest client 代替postman
    使用bfg快速清理git历史大文件
    Adobe Acrobat XI Pro v11.0.10中文版
    Excel 2016打开文档时提示“操作系统当前的配置不能运行此应用程序”
  • 原文地址:https://www.cnblogs.com/liangzid/p/10910136.html
Copyright © 2011-2022 走看看