美文网首页
顺序容器

顺序容器

作者: FakeCSer爱去网吧 | 来源:发表于2020-09-04 11:08 被阅读0次

    分类

    vector:可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。
    deque:双端队列。支持随机快速访问。在头位置插入删除速度很快
    list:双向链表。只支持双向顺序访问。任何位置插入、删除很快
    forward_list:单向链表。只支持单向顺序访问,任何位置插入、删除很快
    array:固定大小数组。支持快速随机访问,不能添加或删除元素。
    string:与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入/删除速度快。

    使用原则(c++primer)

    决定因素:对数据的操作(增删改查)那种占主导地位

    • 首选vector
    • 容器内元素很多,且空间的额外开销很重要->不选链表list和forward_list
    • 要修随机访问元素->vector 或者deque
    • 中间插入和删除->链表list和forward_list
    • 只头尾增删->deque
    • 如果1.只在读取输入时中间插2.之后只随机访问
      1. vector尾插+sort重排
      2. list输入,一旦输入完成,将list拷贝到vector中

    常用操作

    1.push_back 在数组的最后添加一个数据
    
    2.pop_back 去掉数组的最后一个数据
    
    3.at 得到编号位置的数据
    
    4.begin 得到数组头的指针
    
    5.end 得到数组的最后一个单元+1的指针
    
    6.front 得到数组头的引用
    
    7.back 得到数组的最后一个单元的引用
    
    8.max_size 得到vector最大可以是多大
    
    9.capacity 当前vector分配的大小
    
    10.size 当前使用数据的大小
    
    11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
    
    12.reserve 改变当前vecotr所分配空间的大小
    
    13.erase 删除指针指向的数据项
    
    14.clear 清空当前的vector
    
    15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
    
    16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
    
    17.empty 判断vector是否为空
    
    18.swap 与另一个vector交换数据
    
    • deque
    • list
    • forward_list
    • array
    • string

    相关文章

      网友评论

          本文标题:顺序容器

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