在C++标准库中,队列(queue)是一种容器适配器,它以先进先出的方式组织数据,其中从容器一端插入元素,另一端取出元素。
queue的使用
queue的构造函数
queue的成员函数
empty:检测队列是否为空
size:返回队列中有效元素的个数
front:返回队头元素的引用
back:返回队尾元素的引用
push_back:在队列尾部入队列
pop_front:在队列头部出队列
queue的模拟实现
template<class T, class Container = list<T>>
class queue {
public:
void push(const T& x) {
_con.push_back(x);
}
void pop() {
_con.pop_front();
}
const T& front() {
return _con.front();
}
const T& back() {
return _con.back();
}
size_t size() {
return _con.size();
}
bool empty() {
return _con.empty();
}
private:
Container _con;
};
成员函数的模拟实现
push(const T& x) 函数用于将元素 x 添加到队列的末尾,它实际上调用了底层容器的 push_back() 方法。
pop() 函数用于移除队列头部的元素,它实际上调用了底层容器的 pop_front() 方法。
back() 函数返回队列中的最后一个元素的引用,它可以用于访问队列的末尾元素。
front() 函数返回队列中的第一个元素的引用,用于访问队列的头部元素。
empty() 函数用于检查队列是否为空,它实际上调用了底层容器的 empty() 方法。
size() 函数用于获取队列中元素的数量,它实际上调用了底层容器的 size() 方法。
私有成员 _con 是底层容器对象,用于存储队列的元素。
使用这个模拟队列类,你可以选择不同的底层容器类型(默认为 std::deque),并调用类的方法来模拟队列的基本操作,如添加元素、移除元素、访问元素、判断是否为空等。这种实现方式允许你通过模板来适应不同的数据类型和底层容器,从而更加灵活地使用队列。