template<class T, class A = allocator<T> >
class deque {
public:
//类型定义
typedef A allocator_type;
typedef A::size_type size_type;
typedef A::difference_type difference_type;
typedef A::reference reference;
typedef A::const_reference const_reference;
typedef A::value_type value_type;
typedef T0 iterator;
typedef T1 const_iterator;
typedef reverse_iterator<iterator, value_type,
reference, A::pointer, difference_type>
reverse_iterator;
typedef reverse_iterator<const_iterator, value_type,
const_reference, A::const_pointer, difference_type>
const_reverse_iterator;
//构造函数
explicit deque(const A& al = A());
explicit deque(size_type n, const T& v = T(), const A& al = A());
deque(const deque& x);
deque(const_iterator first, const_iterator last,
const A& al = A());
//返回第一个开始元素迭代
iterator begin();
const_iterator begin() const;
//返回结束尾后元素迭代器
iterator end();
iterator end() const;
//返回反向开始元素迭代
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
//返回反向尾后迭代
reverse_iterator rend();
const_reverse_iterator rend() const;
//中心分配大小
void resize(size_type n, T x = T());
//返回元素个数
size_type size() const;
//返回元素最大容量
size_type max_size() const;
//如果队列为空返回false
bool empty() const;
A get_allocator() const;
//获取指定位置元素
reference at(size_type pos);
const_reference at(size_type pos) const;
//重载[]运算符
reference operator[](size_type pos);
const_reference operator[](size_type pos);
//返回首元素引用
reference front();
const_reference front() const;
//返回尾元素引用
reference back();
const_reference back() const;
//队头压入元素
void push_front(const T& x);
//队头弹出元素
void pop_front();
//队尾压入元素
void push_back(const T& x);
//队尾弹出元素
void pop_back();
//清空原队列,根据指定容器进行
void assign(const_iterator first, const_iterator last);
void assign(size_type n, const T& x = T());
//插入元素
iterator insert(iterator it, const T& x = T());
void insert(iterator it, size_type n, const T& x);
void insert(iterator it,
const_iterator first, const_iterator last);
//删除元素
iterator erase(iterator it);
iterator erase(iterator first, iterator last);
//清空
void clear();
//交换
void swap(deque x);
protected:
A allocator;
};
STL 双端队列
猜你喜欢
转载自blog.csdn.net/timeinsist/article/details/78474403
今日推荐
周排行