如果要用queue函数要在开始输入#include<queue>
queue<类型>名称。
比如:定义queue<string>a queue<int>a
struct node
{ int a[4];
};
queue<node>a;
(1)push();就是从已有元素后面增加元素
queue<string>q;
q.push("coding");
cout<<q.front()<<endl;
输出结果是coding, push()就是从已有元素后面增加元素,将其插入队列中。
(2)front();返回队列的第一个元素的值,这里只是返回,并没有把它剔除队列。
queue<string>q;
q.push("hahahaha");
q.push("bald man!");
cout<<q.front()<<endl;
输出结果hahahaha
(3)back();返回队列的最后一个元素的值。
queue<string>q;
q.push("hahahaha");
q.push("bald man!");
cout<<q.back()<<endl;
输出结果bald man!
(4)pop();删除第一个元素
queue<string>q;
q.push("hahahaha");
q.push("bald man!");
pop();
cout<<q.front()<<endl;
如果没有pop()正常输出是hahahaha,现在有了pop(),即删除第一个元素,此时bald man!就是第一个元素了,最终输出
bald man!
(5)empty();判断队列是否为空,若为空则返回true。
queue<string>q;
cout<<q.empty()<<endl;
q.push("lalala");
cout<<q.empty()<<endl;
第一个为空,所以输出结果为1,第二个不为空,输出0。
(6)size();返回队列元素个数
queue<string>q;
q.push("hahahaha");
q.push("bald man!");
cout<<q.size()<<endl;
输出结果2
为什么说它是先进先出?
queue<string> q;
q.push("hahahaha");
q.push("bald man!");
cout<<q.front()<<endl;
queue<string>q;
q.push("hahahaha!");
q.push("bald man!");
q.pop();
cout<<q.front()<<endl;
第一个代码将hahahaha插入队列q中,再将bald man!插入队列q中,先出来的是hahahaha,
第二个代码将两个插入q中,再删除第一个元素即“bald man!"删去的也是第一个先插入进来的元素,所以不论是添加还是删除都是先进先出。