zoukankan      html  css  js  c++  java
  • C++ map;vector;list;queue;stack;set对比使用

    对比一下,方便使用。

    map:

    一个关联容器,提供一对一数据处理的功能。map内部自建一棵红黑树,具有自动排序功能,map内部数据都是有序的。一般而言,关联式容器是一个平衡二叉树,以便获得良好的搜寻效率。


    vector:

    相当于一个动态数组,声明时可以不指明元素数量,需要的时候调用push_back()函数添加元素,即时存取效率较高。


    list:

    数据结构中的双向链表,内存空间是不连续的,通过指针来进行数据的访问,即时存取不是很快但插入删除效率高。


    queue:

    一种容器适配器,它给予程序员一种先入先出(FIFO)的数据结构。


    stack:

    一种容器适配器,它给予程序员一种后入先出(LIFO),那种数据被插入,然后再容器末端取出。


    set:

    关联容器,根据元素值自动排序(默认从小到大),能从一个数据集合中取出元素,set中每个元素值唯一且不能被直接改变。


    常用函数:


    map:

    begin() 返回指向map头部的迭代器

    clear() 删除所有元素

    count()返回指定元素出现的次数

    empty() 如果map为空则返回true

    end() 返回指向map末尾的迭代器

    equal_range() 返回特殊条目的迭代器对

    erase() 删除一个元素

    find() 查找一个元素

    get_allocator()返回map的配置器

    insert() 插入元素

    key_comp() 返回比较元素key的函数

    lower_bound() 返回键值>=给定元素的第一个位置

    max_size() 返回可以容纳的最大元素个数

    rbegin() 返回一个指向map尾部的逆向迭代器

    rend() 返回一个指向map头部的逆向迭代器

    size() 返回map中元素的个数

    swap() 交换两个map元素

    upper_bound() 返回键值>给定元素的第一个位置

    value_comp()返回比较元素value的函数



    vector:

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


    list:

    assign()给list赋值 
    back() 返回最后一个元素 
    begin() 返回指向第一个元素的迭代器 
    clear() 删除所有元素 
    empty() 如果list是空的则返回true 
    end() 返回末尾的迭代器 
    erase() 删除一个元素 
    front() 返回第一个元素 
    get_allocator() 返回list的配置器 
    insert() 插入一个元素到list中 
    max_size() 返回list能容纳的最大元素数量 
    merge() 合并两个list 
    pop_back() 删除最后一个元素 
    pop_front() 删除第一个元素 
    push_back() 在list的末尾添加一个元素 
    push_front() 在list的头部添加一个元素 
    rbegin() 返回指向第一个元素的逆向迭代器 
    remove() 从list删除元素 
    remove_if() 按指定条件删除元素 
    rend() 指向list末尾的逆向迭代器 
    resize() 改变list的大小 
    reverse() 把list的元素倒转 
    size() 返回list中的元素个数 
    sort() 给list排序 
    splice() 合并两个list 
    swap() 交换两个list 
    unique() 删除list中重复的元素


    queue:

    back()返回最后一个元素
    empty() 如果队列空则返回真
    front() 返回第一个元素
    pop() 删除第一个元素
    push() 在末尾加入一个元素
    size() 返回队列中元素的个数


    stack:

    empty()堆栈为空则返回真
    pop() 移除栈顶元素
    push() 在栈顶增加元素
    size() 返回栈中元素数目

    top()返回栈顶元素


    set:

    begin()       返回set容器的第一个元素

    end()     返回set容器的最后一个元素后面的地址(切记不是返回最后一个元素)

    clear()      删除set容器中的所有的元素

    empty()   判断set容器是否为空

    max_size()  返回set容器可能包含的元素最大个数

    size()    返回当前set容器中的元素个数

    rbegin   返回的值和end()相同

    rend()   返回的值和rbegin()相同



    #END


  • 相关阅读:
    Python之路【第四十五篇】:django日更
    Python之路【第四十四篇】:django日更
    C++ 调用动态链接库
    博客园美化
    postgresql中的UUID
    使用rustup安装rust环境
    MySQL 查询做排名
    Docker
    CentOS安装Docker和基础操作
    切换CentOS7的yum源为阿里源
  • 原文地址:https://www.cnblogs.com/yunet/p/12584111.html
Copyright © 2011-2022 走看看