c_cpp 使用矢量擦除实现队列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 使用矢量擦除实现队列相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
// #Queue #BasicProblem
bool isEmpty(vector<int> Q){
if(Q.size()==0){
return true;
}else{
return false;
}
}
void Enq(vector<int> &Q, int push){
Q.push_back(push);
}
bool Deq(vector<int> &Q,int &front){
if(isEmpty(Q)==true){
return false;
}else{
front=Q[0];
Q.erase(Q.begin()+0); //erasing first element
return true;
}
}
int main() {
cout<<"Instructions: \n";
cout<<"Type add to Enqueue"<<endl;
cout<<"Type del to Dequeue"<<endl;
cout<<"Type exit to stop using the Queue"<<endl;
vector<int> Q;
int front;
while(1){
string instruction;
cout<<"Instruction: ";
cin>>instruction;
if(instruction=="exit"){
break;
}else if(instruction=="add"){
cout<<"Enter the element top be enqueued"<<endl;
int push; //element to be enqueued
cin>>push;
Enq(Q,push);
cout<<"Element "<<Q[Q.size()-1]<<" successfully enqueued"<<endl;
}else if(instruction=="del"){
if(Deq(Q,front)==true){
cout<<"Element "<<front<<" successfully Dequeued"<<endl;
if(isEmpty(Q)==false){
cout<<"Front Element is:"<<Q[0]<<endl;
}else{
cout<<"Queue is now Empty!"<<endl;
}
}else{
cout<<"ERROR : Queue is empty!"<<endl;
}
}else{
cout<<"ERROR : Unknown operation! Please try again"<<endl;
}
}
return 0;
}
以上是关于c_cpp 使用矢量擦除实现队列的主要内容,如果未能解决你的问题,请参考以下文章
尝试在矢量上使用擦除功能时“没有匹配的调用功能”
Visual C++ 矢量擦除会增加内存使用量?
矢量排序和擦除不起作用
按键擦除矢量元素
擦除矢量时出现分段错误
c_cpp 擦除迭代器