美文网首页
标准序列容器比较

标准序列容器比较

作者: my_passion | 来源:发表于2022-09-30 14:47 被阅读0次

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(): 特有

相关文章

网友评论

      本文标题:标准序列容器比较

      本文链接:https://www.haomeiwen.com/subject/gaolartx.html