- stack的操作
|函数名| 功能 |
|–|--|
| stack(const container_type &ctnr = container_type()) | 构造空栈 |
|bool empty() const判断栈是否为空|
|size_type size() const|返回栈的长度|
|value_type &top()|返回栈顶元素的引用|
|const value_type &top() const|返回栈顶元素的const引用|
|void push(const value_type &val)|将元素val插入栈中|
|void push()|将stack中尾部的元素弹出|
|template<class … Args> void emplace(Args&&… args)(c++11)|在stack的栈顶构造元素|
|void swap(stack &x)(c++11)|交换两个栈中的元素| - queue的操作
函数名 | 功能 |
---|---|
queue(const container_type &ctnr = container_type()) | 构造空队列 |
bool empty() const | 检测队列是否为空 |
size_type size()const | 返回队列中有效元素个数 |
value_type &front() | 返回队列头元素的引用 |
const value_type &front()const | 返回队列头元素的const引用 |
value_type &back() | 返回队列尾元素的引用 |
constvalue_type &back()const | 返回队列尾元素的const引用 |
void push(value_type &val) | 在队尾将元素val入队列 |
void pus() | 将队头元素出队列 |
template<class…Args> void emplace(Args &&…args)(c++11) | 在队尾构造元素 |
void swap(queue &x) | 交换两个队列的元素 |
- stack的实现
//模拟实现stack
///
template<class T, class Con = deque<T>>
class Stack
{
public:
Stack()
{}
void Push(const T& x)
{
_c.push_back(x);
}
void Pop()
{
_c.pop_back();
}
T& top()
{
return _c.back();
}
size_t size() const
{
return _c.size();
}
bool Empty()const
{
return _c.empty();
}
private:
Con _c;
};
4.queue的实现
namespace QUEUE
{
template<class T, class Con = deque<T>>
class Queue
{
public:
Queue()
{}
void push(const T& x)
{
_c.push_back(x);
}
void pop()
{
_c.pop_back();
}
T& back()
{
return _c.back();
}
T& front()
{
return _c.front();
}
private:
Con _c;
};
}