zoukankan      html  css  js  c++  java
  • STL::list

    list: 是一个双向链表。和 forward_list(单向链表)相似。

    Constructor(同 vector 相似)

    default:

    fill:

    range:

    copy:

    move:

    initializer list:

    Iterator(同 vector)

    begin:

    end:

    rbegin:

    rend:

    cbegin:

    cend:

    crbegin:

    crend:

    Capacity

    empty:

    size:

    max_size:

    Element access(同 vector 类似)

    front:

    back:

    Modifiers

    assign: 重新赋予 list 的内容(用法同 vector::assign),三种方式:range; fill; initializer list;

    emplace(c++11):

    emplace_front(c++11):

    emplace_back(c++11):

    push_front:

    pop_front:

    push_back:

    pop_back:

    insert: 是在对于的迭代器之前插入(这是 STL 对于插入操作的基本规范)

    erase: 范围擦除 [first,last);同 vector::erase;

    swap:

    resize:

    clear:

    Operations

    splice: 从一个容器中的元素转运(非复制)到到另一个容器中;三种用法:entire list; single element; element range;

    remove: 通过值来移除元素(erase 通过位置(iterator)移除元素);改变容器的 size;  

    remove_if: 参数要么是一个函数指针,要么是一个函数对象,函数为一个返回值是 bool 的函数,该函数调用容器中的每一个元素,移除使函数返回值为 true 的元素。

    unique:删除重复元素,也可以传入函数或者类对象,进行扩展相等性的判断。

    merge:有序合并两个链表(两个链表已经各自有序,按照当前排序进行转运元素(非复制)),也可以指定 cmp 函数进行比较规则的自定义。(list::splice 无序的合并操作)

    sort: 排序,默认顺序为升序排列,可以传入函数名(函数指针),函数返回值为 bool 型。以返回值为 true  的顺序排列,是一个稳定排序(相同元素的相对位置不会发生变化)。

    reverse: 将容器内的元素顺序翻转。

    补充:strict weak sorting:严格弱排序,严格是说在判断的时候会用 “<” 而不是 “<=”,弱排序是因为,一旦 “<” 成立便认为存在 “<” 关系,返回 ture, 而忽略了 “=” 关系和 “>” 的区别,把它们归结为 false 。  referce-->https://blog.csdn.net/xingliang_liu/article/details/3855390

    ==============STL源码剖析进行部分补充:================

    SGI STL 不仅是一个双向链表,而且还是一个环状双向链表。所以它只需要一个指针,便可以完整表现整个链表。如果让指针 node 指向刻意置于尾端的一个空白节点,node 便能符合 STL 对于“前闭后开”区间的要求,成为 last 迭代器。示意图如下:

    所有博文均为原著,如若转载,请注明出处!
  • 相关阅读:
    Stock Transfer I
    Negative Stock in "Stock in Transit"
    ZFINDEXITS
    Plan Driven Procurement III: Classic Scenario in SRM 5.0
    C++builder 创建进程之CreateProcess函数
    常用DOS命令
    【转】程序员的几个级别
    几本书
    OOP SOLID原则
    SSRS 使用总结
  • 原文地址:https://www.cnblogs.com/zpcoding/p/10327937.html
Copyright © 2011-2022 走看看