STL----queue
queue 并不属于STL中容器的一种,是一个适配器(adapter),或叫配接器。底层维护一个其他容器,并不自己实现,提供有限的接口。
#include <list>
#include <cassert>
namespace my
{
template<class T>
class queue
{
public:
queue() {}
queue(const queue<T>& que)
{
std::list<T> tmp(que._data);
_data.swap(tmp);
}
void push(const T& x)
{
_data.push_back(x);
}
void pop()
{
assert(!_data.empty());
_data.pop_front();
}
T& front()
{
assert(!_data.empty());
return _data.front();
}
const T& front() const
{
assert(!_data.empty());
return _data.front();
}
T& back()
{
assert(!_data.empty());
return _data.back();
}
const T& back() const
{
assert(!_data.empty());
return _data.back();
}
size_t size() const
{
return _data.size();
}
bool empty() const
{
return _data.empty();
}
void print()
{
while (!_data.empty())
{
std::cout << _data.front() << " ";
_data.pop_front();
}
std::cout << std::endl;
}
private:
std::list<T> _data;
};
}
本文介绍了一个自定义实现的STL队列类,该队列使用标准模板库中的list作为底层容器,提供了基本的队列操作如push、pop、front、back等,并实现了拷贝构造函数。
557

被折叠的 条评论
为什么被折叠?



