// generic queue implemented with doubly linked list #include<iostream> #include<string> #include <list> using std::cout; using std::endl; using std::string; template<class T> class Queue { public: Queue() { } void clear() { lst.clear(); } bool isEmpty() const { return lst.empty(); } T& front() { return lst.front(); } void enqueue(const T& el) { lst.push_back(el); } T dequeue() { T el = lst.front(); lst.pop_front(); return el; } private: std::list<T> lst; }; int main(){ Queue<string> tque; tque.enqueue("you "); tque.enqueue("are "); tque.enqueue("a "); tque.enqueue("shining "); tque.enqueue("star."); while(!tque.isEmpty()){ cout << tque.dequeue(); } cout << endl; // A segmentation fault will happen. //cout << tque.dequeue(); }
用链表std::list实现队列
原创FrankNie0101 ©著作权
文章标签 C++ STL 算法 文章分类 数据结构与算法 人工智能
©著作权归作者所有:来自51CTO博客作者FrankNie0101的原创作品,谢绝转载,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
std::numeric_limits::max和宏定义重复报错问题
编译报错问题解决
NOMINMAX minwindef.h std::numeric_limits -
JAVA list基础操作
list基本操作
System List Test