从STL的std::queue说起
STL的std::queue类是个容器适配器,即由其它容器包装而成的特殊数据结构。
提到queue,就少不了提及它的两个最重要的操作:往队列尾部填加数据的push和从队列头部弹出数据的pop。本文不打算讨论push,只想考查一下pop。std::queue的pop函数相当简单:
void pop();
它的唯一作用就是将当前的队首元素从队列中删除。
同时,std::queue又提供两个重载的front函数,用以获得当前的队首元素:
value_type& front();
const value_type& front() const;
注意,这两个front函数返回的都是队中元素的引用(而非临时变量)。
pop和front这两个成员函数,一个删除队首顶素,一个获得队首元素,在绝大多数情况下,必须联合使用才能完成我们需要的动作。因为我们在使用队列时,最常用的操作就是把队首元素从队列中“取”出来并进行处理。
Java的标准库中,也有个类似的Queue模板类: