目录
简介
queue,队列。特点:先进先出。C++ STL提供了入队,出队,获取队顶,队尾等函数。
代码
/*
queue
Author:YuBo
Date:2018/2/5
*/
#include<iostream>
#include<queue>
using namespace std;
queue<int> q;
void menu()
{
cout<<"******1.入队 2.出队**********"<<endl;
cout<<"******3.读取队顶 4.读取队尾******"<<endl;
cout<<"******5.队中元素个数 6.退出**********"<<endl;
}
void PUSH()
{
int i;int n;int N;
cout<<"请输入你要输入的整数个数:"<<endl;
cin>>N;
cout<<"请输入"<<N<<"个整数:"<<endl;
for(i=0;i<N;i++)
{
cin>>n;
q.push(n);
}
}
void POP()
{
int i,N;
cout<<"请输入你要删除的整数个数:"<<endl;
cin>>N;
if(N>q.size())cout<<"里面没有这么多元素。。。"<<endl;
else{
for(i=0;i<N;i++)
{
q.pop();
}
}
}
void Getfront()
{
if(q.empty())cout<<"队已经空了!"<<endl;
else cout<<"队顶元素为:"<<q.front()<<endl;
}
void Getback()
{
if(q.empty())cout<<"队已经空了!"<<endl;
else cout<<"队尾元素为:"<<q.back()<<endl;
}
void Getsize()
{
cout<<"队的大小为:"<<q.size()<<endl;
}
int main()
{
int i;
while(1)
{
menu();
cout<<"请输入菜单号:"<<endl;
cin>>i;
if(i==6)break;
switch(i)
{
case 1:PUSH();break;
case 2:POP();break;
case 3:Getfront();break;
case 4:Getback();break;
case 5:Getsize();break;
default:cout<<"输入错误!";break;
}
}
return 0;
}
运行截图
---------------------------------------------------20200928更新----------------------------------------------
常用函数
常用成员函数 | 功能 |
---|---|
empty() | 如果 queue 中没有元素的话,返回 true。 |
size() | 返回 queue 中元素的个数。 |
front() | 返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 |
back() | 返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 |
push(const T& obj) | 在 queue 的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。 |
emplace() | 在 queue 的尾部直接添加一个元素。调用底层emplace_back(),效率高。 |
push(T&& obj) | 以移动的方式在 queue 的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。 |
pop() | 删除 queue 中的第一个元素。 |
swap(queue &other_queue) | 将两个 queue 容器适配器中的元素进行互换,需要注意的是,进行互换的 2 个 queue 容器适配器中存储的元素类型以及底层采用的基础容器类型,都必须相同。 |
更多STL例子:C++ STL的使用
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!