• c++ stl


    本文主要介绍C++ STL(Standard Template Library, 标准模板库)常用的容器。

    包括但不限于vector、stack、queue、deque、list、priority_queue、map、set。

    使用方法均以string类型为例,也可以是自定义元素。

    1、 vector

    vector<string> sVector;  // 声明一个string类型的vector容器

    size()  // 当前存放的元素的个数

    capacity()  // 容器的容量,size <= capacity

    front()  // 序列的第一个元素

    back()  // 序列的最后一个元素

    push_back()  // 在序列的尾部添加一个元素

    insert()  // 在指定之前位置插入元素,第一个参数为迭代器,第二个参数为要插入的元素

    clear()  // 清除所有元素

    erase()  // 删除一个元素或一个区域的元素

    2、 stack

    stack<string> sStack;  // 声明一个string类型的stack容器

    top()  // 返回栈顶元素

    push()  // 压栈

    pop()  // 出栈

    size()  // 当前存放的元素个数

    empty()  // 当前栈是否为空

    3、 queue

    queue<string> sQueue;  // 声明一个string类型的queue容器

    front()  // 队列的首部元素

    back()  // 队列的尾部元素

    push()  // 在队列尾部添加元素

    pop()  // 删除队列首部元素

    size()  // 当前存放的元素个数

    empty()  // 当前队列是否为空

    4、 list

    list<string> sList;  // 声明一个string类型的list容器

    push_front()  // 在链表首部插入一个元素

    push_back()  // 在链表尾部插入一个元素

    empty()  // 当前链表是否为空

    clear()  // 清除链表中的所有元素

    front()  // 获取链表首部元素

    back()  // 获取链表尾部元素

    pop_front() // 删除链表首部元素

    pop_back()  // 删除链表尾部元素

    merge()  // 合并两个链表:merge(mylist, less<string>())

    insert()  // 在指定位置之前插入元素

    erase()  // 删除一个元素或一个区域的元素

    5、 priority_queue

    priority_queue<string, vector<string>, less<string>> iPqueue;  // 声明一个string类型的priority_queue容器

    top()  // 访问队列顶部元素

    empty()  // 队列是否为空

    size()  // 当前存放的元素个数

    push()  // 插入元素到队列并排序

    pop()  // 弹出顶部元素

    6、 map

    map<int, string> imaps;  // 声明一个<int, string>的映射容器

    clear()  // 删除所有元素

    empty()  // map是否为空

    erase()  // 删除一个元素

    find() // 查找一个元素,没有查到则指向容器的end()

    insert()  // 插入一个元素

    size()  // 当前存放元素的个数

    关于元素插入的两种方式:

    imaps.insert(pair<string, int>(“test”, 1)); // 存在则插入失败

    imaps[“test”] = 1; // 存在则覆盖,不存在则插入

    7、 set

    set<string> sset;  // 声明一个string类型的集合容器

    s.clear()  //  清除所有元素

    s.count()  //  返回某个值元素的个数

    s.empty()  //  如果集合为空

    s.erase()  //  删除集合中的元素

    s.find()  //  返回一个指向被查找到元素的迭代器

    s.insert()  //  在集合中插入元素

    s.size()  //  集合中元素的数目

    注意:find() 返回是set<string>::iterator类型;

    insert() 返回pair<set<string>::iterator, bool>类型,其中bool类型指明了是否插入成功,iterator指向插入的元素

    erase() 返回指向被删除元素的个数,非0即1

     

  • 相关阅读:
    移动端HTML5音频与视频问题及解决方案
    git did not exit cleanly
    移动端事件对象touches的误区
    原创:CSS3技术-雪碧图自适应缩放与精灵动画方案
    H5+JS+CSS3 综合应用
    深入理解CSS3 Animation 帧动画
    在 MacOS 中使用 multipass 安装 microk8s 环境
    [译] Design patterns for container-based distributed systems
    Sangmado 公共基础类库
    Redola.Rpc 集成 Consul 服务发现
  • 原文地址:https://www.cnblogs.com/tongyishu/p/12589395.html
Copyright © 2020-2023  润新知