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页,下周见。。。。

原文地址:https://www.cnblogs.com/liangzid/p/10910136.html