STL——list、stack、queue

来源:互联网 发布:赵薇披日本国旗 知乎 编辑:程序博客网 时间:2024/05/17 23:56

list

  list<int> l

  插入:push_back尾部,push_front头部,insert方法前往迭代器位置处插入元素,链表自动扩张,迭代器只能使用++--操作,不能用+n -n,因为元素不是物理相连的。

  遍历:iterator和reverse_iterator正反遍历

  删除:pop_front删除链表首元素;pop_back()删除链表尾部元素;erase(迭代器)删除迭代器位置的元素,注意只能使用++--到达想删除的位置;remove(key) 删除链表中所有key的元素,clear()清空链表。

  查找:it = find(l.begin(),l.end(),key)

  排序:l.sort()

  删除连续重复元素:l.unique() 【2 8 1 1 1 5 1】 --> 【 2 8 1 5 1】

 stack(后进先出)


#include <iostream>#include <stack>using namespace std;int main(){    stack<int> s;    s.push(1);    s.push(2);    s.push(4);    s.push(5);    cout << s.size() << endl;    while(s.empty() != true)    {        cout << s.top() << endl;        s.pop();    }    return 0;}
queue(先进先出)

queue有入队push(插入)、出队pop(删除)、读取队首元素front、读取队尾元素back、empty,size这几种方法

priority_queue(最大元素先出)

#include <iostream>#include <queue>using namespace std;int main(){    priority_queue<int> pq;    pq.push(1);    pq.push(3);    pq.push(2);    pq.push(8);    pq.push(9);    pq.push(0);    cout << "size: " << pq.size() << endl;    while(pq.empty() != true)    {        cout << pq.top() << endl;        pq.pop();    }    return 0;}


0 0
原创粉丝点击