首页 > 编程语言 > 详细

C++中的顺序容器

时间:2019-04-08 22:43:07      阅读:149      评论:0      收藏:0      [点我收藏+]

 

 

 

容器定义和初始化

    技术分享图片

与顺序容器大小相关的构造函数

    技术分享图片

  注意:只有顺序容器的构造函数才接受大小参数,关联容器并不支持。

 

标准库array具有固定大小

  技术分享图片

  因为大小是array类型的一部分,array不支持普通的容器构造函数。

六种初始化vector对象的方法

   vector<int> ilist1;

   vector<int> ilist2(ilist);  //     vector<int> ilist2_1 = ilist;

  vector<int> ilist = {1,2,3.0,4,5,6,7}; // 包含3.0的类型转换

  vector<int> ilist3(ilist.begin()+2,ilist.end()-1);

  vector<int> ilist4(7);

  vector<int> ilist5(7,3);  //7个值为3的int

赋值和swap

  技术分享图片

使用assign(仅顺序容器)

  顺序容器定义了一个名为assign的成员,允许我们从一个不同但相容的类型赋值,或者从容易的一个子序列赋值,assign操作用参数所指定的元素(的拷贝)替换左边容器的所有元素。

使用array

 除array之外,swap不对任何元素进行考诶、删除或者插入操作,因此可以保证在常数时间内完成。交换来听歌容器内容的操作保证会很快,

  元素本身并没有交换,swap只是交换了两个容器内部数据结构。而交换两个array所需时间与array中元素的数目成正比。

  另:统一使用非成员版本的swap是一个好习惯,因为其在泛型编程中时很重要的。

 

容器大小操作

  技术分享图片

顺序容器操作

  技术分享图片

  使用push_back

    除array和forward_list之外,顺序容器支持push_back将元素压入容器尾部。

  关键概念:容器元素是拷贝。

  使用push_front

    list、forward_list和deque容器还支持名为push_front的操作,将元素插入到容器的头部。

  在容器特定位置添加元素

    slist.insert(iter,"hello!"); //hello插入到了iter指向的元素之前。

  插入范围内元素

    技术分享图片

  使用isert的返回值

    技术分享图片

  使用emplace操作

    技术分享图片

  注意:

      技术分享图片

 

   访问元素

     技术分享图片

    技术分享图片

  删除元素

    技术分享图片

  特殊的forward_list操作

    技术分享图片

  改变容器大小

    技术分享图片

    技术分享图片

  容器操作可能使迭代器失效

    技术分享图片

  防止迭代器失效的操作:

      为了防止添加和删除vector、string、或deque元素循环程序必须考虑迭代器、引用和指针可能失效的问题。程序必须保证每个循环步骤中都更新迭代器、引用或指针。

       不要保存end返回的迭代器。 因为end返回的迭代器总是会失效。

vector对象是如何增长的

      【采用多分配一点空间作为备用】

      管理容量的成员函数

        技术分享图片

 

  capcity和size  

    容器的size是指它已经保存的元素的数目,而capacity则是在不分配新的内存空间的前提下它最多可以保存多少元素。

    也就是说,capacity是包含备用空间的大小,size只是当前保存的元素的数量。

      技术分享图片

 

     为什么list或array没有capacity成员函数

      因为list新节点是从空间中分配新的内存,而删除节点是直接将节点占用的内存释放,所以不存在保留空间这个说法,至于array,数组内存是一次性分配,大小不变,不会变化。

  额外的string操作

    技术分享图片

    substr操作

         技术分享图片

    改变string的其它方法

            技术分享图片

    技术分享图片

    技术分享图片

 

   改变string的多种重载函数

    技术分享图片

  string搜索操作

     技术分享图片

    技术分享图片

  指定在哪里开始搜索

    技术分享图片

 

   逆向搜索

     技术分享图片

  compare函数

    技术分享图片

数值转换

    技术分享图片

容器适配器

    技术分享图片

栈适配器

    技术分享图片

队列适配器

      技术分享图片

      技术分享图片

 

C++中的顺序容器

原文:https://www.cnblogs.com/xingzhuan/p/10672290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!