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 迭代器。示意图如下:

    所有博文均为原著,如若转载,请注明出处!
  • 相关阅读:
    leetcode 13. Roman to Integer
    python 判断是否为有效域名
    leetcode 169. Majority Element
    leetcode 733. Flood Fill
    最大信息系数——检测变量之间非线性相关性
    leetcode 453. Minimum Moves to Equal Array Elements
    leetcode 492. Construct the Rectangle
    leetcode 598. Range Addition II
    leetcode 349. Intersection of Two Arrays
    leetcode 171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/zpcoding/p/10327937.html
Copyright © 2011-2022 走看看