/* queue容器
* queue是一种先进先出(First In First Out,FIFO)的数据结构,他有两个出口.
*
* 队列从一端进入数据,另一端出数据。
* 队列中只有队首和队尾才可以被外界使用,因此队列不允许有遍历行为.
*
* 构造函数(采用模板类实现):
* - `queue<T> que;`,默认构造形式;
* - `queue(const queue &que);`,拷贝构造函数;
*
* 赋值操作:
* - `queue& operator=(const queue &que);`,重载等号操作符;
*
* 数据存取:
* - `push(elem);`,从队列尾部往队列添加数据;
* - `pop();`,从队列头部移除数据;
* - `back();`,返回最后一个元素;
* - `front();`,返回第一个元素。
*
* 大小操作:
* - `empty();`,判断堆栈是否为空;
* - `size();`,返回栈的大小。
*/
一个栗子:
class Person{
public:
Person(string name, int age){
this->m_name = name;
this->m_age = age;
}
string m_name;
int m_age;
};
void test001(){
//创建队列
queue<Person> q;
//准备数据
Person p1("猴哥", 1000);
Person p2("八戒", 400);
Person p3("沙师弟", 200);
Person p4("师傅", 30);
// 入队
q.push(p1);
q.push(p2);
q.push(p3);
q.push(p4);
// 队列无法遍历,所以这里没有用for循环
while (!q.empty()){
cout << "队头元素:" << q.front().m_name<< q.front().m_age
<< " 队尾元素:"<<q.back().m_name<<q.back().m_age << endl;
q.pop();
}
}
int main(){
test001();
}