1.queue单向队列(先进先出,只能从尾端加元素,从头删元素)
使用方式:在前面加上文件名‘#include<queue>',再进行声明'queue<int>m;''其中'<>‘里面是数组的类型,‘m'是数组的名字。
操作:
1.q.push()//入队
2.q.pop()//让队首出队
3.q.front()//获得队首元素
4.q.back()//获得队尾元素
5.q.empty() 队列是否为空
6.q.size() 返回队列内元素个数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include<iostream> #include<queue> using namespace std; int main() { int i; queue< int >m; for ( i = 0;i < 5;i++) { m.push(i); //让元素入队 } cout << m.size() << endl; //统计m中元素的个数 for (i = 0;i < 5;i++) { cout<<m.front(); //获得队首元素 //m.pop();//弹出队首元素 } return 0; } |
上面代码运行后由于没有讲队首元素给弹出,输出的都是是一样的,因此为了能让m中的每一个元素输出,我们应该及时的将队首元素给弹出,再每次输出第一个元素的时候及时的将它给弹出。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include<iostream> #include<queue> using namespace std; int main() { int i; queue< int >m; for ( i = 0;i < 5;i++) { m.push(i); //让元素入队 } cout << m.size() << endl; //统计m中元素的个数 for (i = 0;i < 5;i++) { cout<<m.front(); //获得队首元素 m.pop(); //弹出队首元素 } return 0; } |
这样我们就能将m中的所有元素给输出。
2.deque双向列队(即能从头部加入元素又能从尾部加入元素,元素进入按抽屉原理,最后进最先出)
使用方式:在前面加上文件名‘#include<deque>',再进行声明‘deque<int>m;
操作:
1.q.push_back()//尾部插入
2.q.push_front()//头部插入
3.q.pop_front()//头部删除
4.q.pop_back()//尾部删除
5.q.front()//返回第一个元素
6.q.back()//返回最后一个元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include<iostream> #include<deque> using namespace std; int main() { int i; deque< int >m; for ( i = 0;i < 5;i++) { m.push_front(i); //让元素从头部入队 } cout << m.size() << endl; //统计m中元素的个数 for (i = 0;i < 5;i++) { cout<<m.front(); //获得队首元素 m.pop_front(); //从头部弹出队首元素 } return 0; } |
3.vector(长度可变的数组)
使用方法:在前面加上文件名‘#include<vector>',再进行声明‘vector<int>m;'。
操作
1.m.push_back()//输入元素
2.m.pop_back()//删除最后一个元素
3.m.size()//得到vector的大小
4.m.clear()//清空容器中所有数据
5.m.empty()//判断vector是否为空
6.m.front()//引用第一个元素
7.m.back()//引用最后一个元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include<iostream> #include<vector> using namespace std; int main() { int i; vector< int >m; for ( i = 0;i < 5;i++) { m.push_back(i); //让元素入队 } cout << m.size() << endl; //得到vector容器的大小 for (i = 0;i < 5;i++) { cout << m.back(); //获得尾部元素 m.pop_back(); //从尾部弹出元素 } cout << endl; for (i = 0;i < 5;i++) { m.push_back(i); } cout << m.size() << endl; m.clear(); //清除m中所有元素 cout << m.size() << endl; return 0; } |
到此这篇关于c++中STL库队列详细介绍的文章就介绍到这了,更多相关c++ STL库队列内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_62837200/article/details/122048593