[C++] STL(list,stack,queue,priority_queue,deque)

  • list双向链表
  • stack栈(后进先出)
  • queue队列(先进先出)
  • priority_queue优先队列
  • deque双端队列

容器共用特征:

.begin() //起始地址
.end() //末尾的后一位的地址(最后一位元素的下一位的地址)
.size()//返回元素个数,无符号整型
.swap(b) // 序列交换
::iterator //迭代器(广义指针)

list<int>::iterator it;
list<int> a;
for(it = a.begin();it<a.end();it++)
{
	cout << *it << endl;
}

void outint(int n) {cout<<n<<endl;}
for_each(a.begin(),a.end(),out);

1.list
双向链表,可以在固定的时间插入,不支持数组表示法和随机访问

专用成员函数:
merge(x):将链表x与调用链表合并,合并前两个链表必须已经排序,合并后经过排序的链表保存在调用链表中,x为空;
remove(val):从链表中删除所有val的实例;
sort():对链表进行排序;
splice(pos,x):将链表x插入(粘接)到pos的前面,x将为空;
unique():将连续的相同元素压缩为单个元素。(想去重先排序)

其他成员函数:
.front()//第一个元素
.back()//最后一个元素
.push_front()//从前压入一个元素
.push_back()//从后压入
.pop_front()//从前破坏(删除)一个元素
.pop_back()//从后
.insert(p,t)//在p地址前插入一个值,或一个链表,或一个范围.insert(p,a,a+3)
.erase§//擦除
.clear()//清空

list<int>one(q5,2) //赋值5个2

2.stack
栈,只能在栈顶操作,不支持数组表示法和随机访问

成员函数:
push(x):将x压入栈;
pop():删除栈顶;
top():返回指向栈顶元素的引用;
size():返回栈中元素个数;
empty():判断栈空,若为空,返回true。

#include<iostream>
#include<stack>
using namespace std;
 
int main() 
{
    stack<int>s;
    for(int i=1;i<=5;i++)
    {
        s.push(i);
    }
    cout<<s.top()<<endl<<endl;
    cout<<s.size()<<endl<<endl;
    while(!s.empty())
    {
        cout<<s.top()<<endl;
        s.pop();
    }
    return 0;
} 

3.queue
队列

#include<iostream>
#include<queue> 
using namespace std;
 
int main() 
{
    queue<int>q;
    for(int i=1;i<=5;i++)
        q.push(i);
    cout<<q.front()<<endl<<endl;
    cout<<q.size()<<endl<<endl;
    while(!q.empty())
    {
        cout<<q.front()<<endl;
        q.pop();
     } 
    return 0;
} 

4.priority_queue
优先队列,按照优先级出队,默认越大越优先,不支持数组表示法和随机访问

成员函数:
push(x):将x插入队中;
pop():删除队头;
top():返回指向队头元素的引用;
size():返回队中元素的个数;
empty():判队空,若为空,返回true.

5.deque
双端队列,可以在两端进出队,支持数组表示法和随机访问。经常在序列两端操作时使用该函数。类似vector。

扫描二维码关注公众号,回复: 10812723 查看本文章

成员函数:
push_front(x)/push_back(x) // 从队头队尾入队;
pop_front(x)/pop_back(x) // 从队头队尾出队;
front()/back() // 返回指向队头/队尾元素的引用;
size():返回队中的元素个数;
empty():判队空,若为空,返回true;
clear():清空队列。

发布了43 篇原创文章 · 获赞 80 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43868654/article/details/100591183