C++——queue队列用法总结

C++——queue队列用法总结

队列原则——先进先出

C++——queue队列用法总结_第1张图片

  • 队列容器允许从一端输入数据,从另一端删除数据;
  • 队列中只有队头front()和队尾back()可以被外界使用,因此队列不允许遍历行为;
  • 队列中进数据称为入队push(),出数据称为出队pop()。

队列容器常用函数

  • queue.push()——入队,添加数据;
  • queue.pop()——出队,删除数据;
  • queue.front()——获取队头数据;
  • queue.back()——获取队尾数据;
  • queue.empty()——判断队列是否为空;
  • queue.size()——获取队列的大小;
  • queue.emplace()——在队列的末尾添加一个新元素;

queue.push()和queue.emplace()的区别

参考链接:https://blog.csdn.net/Kprogram/article/details/82055673

#include 
#include 
#include 
using namespace std;

class Person
{
public:
    Person(string name,int age)
    {
        this->name=name;
        this->age=age;
    }
private: 
    string name;
    int age;
};

int main()
{
    queue<int> q;
	q.push(1); 
	q.push(2);
	q.push(3);
	q.push(4);
	cout << "size of q: " << q.size() << endl;
	while (!q.empty())
	{
		cout << "front of q: " << q.front() << endl; 
		cout << "back of q: " << q.back() << endl;
		cout << "------" << endl;
		q.pop();
	}
	
	//push()和emplace()的区别
	Person p1("Tom",5);
	Person p2("Jerry",3);
	queue<Person> q_P;
	//push()和emplace()都可以直接传入对象
	q_P.push(p1);
	q_P.emplace(p2);
	//push()和emplace()都可以在传入时构造对象
	q_P.push(Person("Jack",20);
	q_P.emplace(Person("Rose",19);
	//只有emplace()可以直接传入构造对象所需的元素
	q_P.emplace("David",15);
	
	return 0;
}


你可能感兴趣的:(C++学习笔记,queue,c++)