标准序列容器比较

1 erase() clear() 比较

iterator erase(iterator pos)

    vector: 只析构 destory(), 不释放空间
    list  : 析构+释放空间, 因为1个 node 断链后, 就无法被找到, 无法在 list 的 Dtor 中统一释放空间
    deque : 只析构, 不释放空间

iterator erase(iterator first, iterator last)

    vector: 只析构 destory(), 不释放空间
    
    deque : 析构+释放空间

clear()

    vector: 全区间 erase(first, last), 不释放空间
    list  : 析构+释放空间 
    deque : 析构+释放空间

Dtor
vector: 析构 destory() + 释放空间 deallocate(), 因为 vector 靠3根指针能定位到分配的所有空间

2 list 特殊之处: 1个 node 断链后, 就无法被找到, 所以断链后必须析构并释放空间

1 remove(value): 删除(而不只是移除)值为 value 的所有元素

2 unique() 删除连续且相同的元素中第1个之外的元素

3 transfer(pos, iter1, iter2) 将 [iter1, iter2) 内所有元素移到 pos 之前

4 splice(pos, list& lst) / splice(pos, iter1[, iter2])

lst 必须不同于 *this

将指定区间的元素接合于 pos 之前

5 sort(): 特有

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • Hi!这里是山幺幺的c++ primer系列。写这个系列的初衷是,虽然在学校学习了c++,但总觉得对这门语言了解不...
    山幺幺阅读 402评论 0 1
  • 前面介绍过 vector 容器类型,这里会深入探讨 vector 和其他顺序容器(sequential conta...
    LuuilX阅读 1,002评论 1 1
  • 第9章 顺序容器 9.1 顺序容器概述 1. 顺序容器类型 顺序容器描述vector可变大小数组string与ve...
    北冥有鱼wyh阅读 254评论 0 1
  • 抱佛脚一时爽,一直抱佛脚一直爽!这篇文章总结常见的思路&提示,具体的解法参考本系列其他文章~ 常见思路 是否有路径...
    山幺幺阅读 596评论 0 0
  • 10.1 概述 #include //大部分算法定义 #include <numeric> //数值泛型算法 ...
    龙遁流阅读 588评论 0 1