C++容器

作者: vaisy | 来源:发表于2022-03-31 16:05 被阅读0次

    参考:cplusplus.com
    (注意,所有可以用迭代器访问的东西都可以直接调用algorithm库的函数比如sort和reverse)

    常用的容器类型如下:

    数组类容器

    【数组类容器分配的空间是连续的,可以通过下标索引方式找到】
    array:静态数组
    vector:动态数组,变长。
    两者的相似之处在于迭代器类似。
    但:
    vector可以用的函数类型更丰富,初始化也更丰富。
    因为是变长,所以也可以push_back和pop操作来决定元素的进出;

    对于初始化特殊值为5个6:
    array<int,5> arraynums;
    arraynums.fill(6);

    vector<int> vectornums(5,6);

    此外,vector可以通过resize和reserve等方式调整大小。

    链表类容器

    list:双向链表
    forward_list:单向链表。
    链表,不再采用连续的内存空间。
    初始化函数为assign,填充的参数和vector类似。
    同样是序列类,list允许从前或者从后面操作(数组类只能从后往前做)
    允许push_back,push_front和pop_back,pop_front
    可以通过remove直接移除指定元素。
    可以通过unique实现去重。
    可以调用sort。

    而forward_list只处理头部。
    可以pop_front和push_front来管理头部
    其余用法和list类似。

    队列类容器

    queue,FIFO类的队列。
    允许push和pop

    deque,双边的队列,允许push_back,push_front和pop_back,pop_front

    特殊队列:优先队列,保证最前面的永远是最大的

    stack, LIFO队列,允许 push和pop,也可以取top

    map类容器

    map的本质是红黑树
    unordered_map的本质是哈希表

    集合类容器

    set的本质是平衡二叉树
    unordered_set的本质是哈希表

    相关文章

      网友评论

          本文标题:C++容器

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