C++ Development of Generic Programming Lecture 7 [queue container]

1. Basic concepts

The queue container is the queue learned in our data structure.

The characteristic is: First In First Out (First In First Out, FIFO), it has two outlets.

The queue container allows adding elements from one end and removing elements from the other end.

Only the head and tail of the queue can be used by the outside world, so the queue does not allow traversal behavior.

Incoming data in the queue is called-  enqueue push

Data out of the queue is called-  Dequeue pop

2. Commonly used interfaces

Function description: Commonly used external interface of stack container

Constructor:

  • queue<T> que; //queue is implemented using template classes, the default structure of the queue object
  • queue(const queue &que); //Copy constructor

Assignment operation:

  • queue& operator=(const queue &que); //Overload the equal sign operator

Data access:

  • push(elem); //Add elements to the end of the team
  • pop(); //Remove the first element from the head of the team
  • back(); //Return to the last element
  • front(); //Return the first element

Size operation:

  • empty(); //Determine whether the stack is empty
  • size(); //Return the size of the stack

Example:

#include <queue>
#include <string>
class Person
{
public:
	Person(string name, int age)
	{
		this->m_Name = name;
		this->m_Age = age;
	}

	string m_Name;
	int m_Age;
};

void test01() {

	//创建队列
	queue<Person> q;

	//准备数据
	Person p1("唐僧", 30);
	Person p2("孙悟空", 1000);
	Person p3("猪八戒", 900);
	Person p4("沙僧", 800);

	//向队列中添加元素  入队操作
	q.push(p1);
	q.push(p2);
	q.push(p3);
	q.push(p4);

	//队列不提供迭代器,更不支持随机访问	
	while (!q.empty()) {
		//输出队头元素
		cout << "队头元素-- 姓名: " << q.front().m_Name 
              << " 年龄: "<< q.front().m_Age << endl;
        
		cout << "队尾元素-- 姓名: " << q.back().m_Name  
              << " 年龄: " << q.back().m_Age << endl;
        
		cout << endl;
		//弹出队头元素
		q.pop();
	}

	cout << "队列大小为:" << q.size() << endl;
}

int main() {

	test01();

	system("pause");

	return 0;
}

to sum up:

  • Join the team — push
  • Out of the team — pop
  • Back to the head element — front
  • Back to the tail element — back
  • Determine whether the team is empty — empty
  • Return queue size — size

Guess you like

Origin blog.csdn.net/Kukeoo/article/details/114050534