📄 deque_spec.h
字号:
#ifndef _RWSTD_NO_CLASS_PARTIAL_SPEC
typedef _STD::reverse_iterator<const_iterator> const_reverse_iterator;
typedef _STD::reverse_iterator<iterator> reverse_iterator;
#else
typedef _STD::reverse_iterator<const_iterator,
random_access_iterator_tag, value_type,
const_reference, const_pointer, difference_type>
const_reverse_iterator;
typedef _STD::reverse_iterator<iterator,
random_access_iterator_tag, value_type,
reference, pointer, difference_type>
reverse_iterator;
#endif
public:
_EXPLICIT deque (const _Allocator &alloc _RWSTD_DEFAULT_ARG (_Allocator ()))
: __imp (alloc) { }
#ifdef _RWSTD_NO_DEFAULT_TEMPLATE_ARGS
deque ()
: __imp () { }
deque (size_type n, const_reference x)
: __imp (n, x) { }
#endif // _RWSTD_NO_DEFAULT_TEMPLATE_ARGS
_EXPLICIT deque (size_type n)
: __imp (n) { }
deque (size_type n, const_reference x,
const _Allocator& alloc _RWSTD_DEFAULT_ARG (_Allocator()))
: __imp (n, x, alloc) { }
#ifndef _RWSTD_NO_MEMBER_TEMPLATES
template <class InputIterator>
deque (InputIterator first, InputIterator last,
const _Allocator& alloc _RWSTD_DEFAULT_ARG (_Allocator ()))
: __imp (first, last, alloc) { }
#else // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
deque (const_iterator first, const_iterator last,
const _Allocator& alloc _RWSTD_DEFAULT_ARG(_Allocator()))
: __imp (first, last, alloc) { }
deque (const_pointer first, const_pointer last,
const _Allocator& alloc _RWSTD_DEFAULT_ARG(_Allocator()))
: __imp (first, last, alloc) { }
#ifdef _RWSTD_NO_DEFAULT_TEMPLATE_ARGS
deque (const_iterator first, const_iterator last)
: __imp (first, last) { }
deque (const_pointer first, const_pointer last)
: __imp (first, last) { }
#endif // _RWSTD_NO_DEFAULT_TEMPLATE_ARGS
#endif // _RWSTD_NO_MEMBER_TEMPLATES
deque (const deque &x)
: __imp (x.__imp) { }
deque& operator= (const deque &x) {
__imp = x.__imp;
return *this;
}
#ifndef _RWSTD_NO_MEMBER_TEMPLATES
template<class InputIterator>
void assign (InputIterator first, InputIterator last) {
__imp.assign (first, last);
}
#else // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
void assign (const_iterator first, const_iterator last) {
__imp.assign (first, last);
}
void assign (const_pointer first, const_pointer last) {
__imp.assign (first, last);
}
#endif // _RWSTD_NO_MEMBER_TEMPLATES
void assign (size_type n, const_reference x) {
__imp.assign (n, x);
}
allocator_type get_allocator () const
{
return __imp.get_allocator ();
}
iterator begin () {
return __imp.begin ();
}
const_iterator begin () const {
return __imp.begin ();
}
iterator end () {
return __imp.end ();
}
const_iterator end () const {
return __imp.end ();
}
reverse_iterator rbegin () {
return reverse_iterator (end ());
}
const_reverse_iterator rbegin () const {
return reverse_iterator (end ());
}
reverse_iterator rend () {
return reverse_iterator (begin ());
}
const_reverse_iterator rend () const {
return reverse_iterator (begin ());
}
bool empty () const {
return __imp.empty ();
}
size_type size () const {
return __imp.size ();
}
size_type max_size () const {
return __imp.max_size ();
}
void resize (size_type new_size) {
__imp.resize (new_size);
}
void resize (size_type new_size, const_reference x) {
__imp.resize (new_size, x);
}
reference operator[] (size_type n) {
return reference (__imp [n]);
}
const_reference operator[] (size_type n) const {
return const_reference (__imp [n]);
}
const_reference at (size_type n) const {
return __imp.at (n);
}
reference at (size_type n) {
return __imp.at (n);
}
reference front () {
return reference (__imp.front ());
}
const_reference front () const {
return const_reference (__imp.front ());
}
reference back () {
return reference (__imp.back ());
}
const_reference back () const {
return const_reference (__imp.back ());
}
void push_front (const_reference x) {
__imp.push_front (x);
}
void push_back (const_reference x) {
__imp.push_back (x);
}
void pop_front () {
__imp.pop_front ();
}
void pop_back () {
__imp.pop_back ();
}
iterator insert (iterator pos, const_reference x) {
return __imp.insert (pos, x);
}
#ifndef _RWSTD_NO_MEMBER_TEMPLATES
template <class InputIterator>
void insert (iterator pos, InputIterator first, InputIterator last) {
__imp.insert (pos, first, last);
}
#else // if defined (_RWSTD_NO_MEMBER_TEMPLATES)
void insert (iterator pos, const_iterator first, const_iterator last) {
__imp.insert (pos, first, last);
}
#endif // _RWSTD_NO_MEMBER_TEMPLATES
void insert (iterator pos, size_type n, const_reference x) {
__imp.insert (pos, n, x);
}
iterator erase (iterator pos) {
return __imp.erase (pos);
}
iterator erase (iterator first, iterator last) {
return __imp.erase (first, last);
}
void swap (deque &x) {
__imp.swap (x.__imp);
}
void clear () {
__imp.clear ();
}
};
template <class _TypeT>
inline bool operator== (const deque <_TypeT*, allocator <_TypeT*> > &x,
const deque <_TypeT*, allocator <_TypeT*> > &y)
{
return x.size () == y.size () && equal (x.begin (), x.end (), y.begin ());
}
template <class _TypeT>
inline bool operator< (const deque <_TypeT*, allocator <_TypeT*> > &x,
const deque <_TypeT*, allocator <_TypeT*> > &y)
{
return lexicographical_compare (x.begin (), x.end (), y.begin (), y.end ());
}
#if !defined (_RWSTD_NO_NAMESPACE) || !defined (_RWSTD_NO_PART_SPEC_OVERLOAD)
template <class _TypeT>
inline bool operator!= (const deque <_TypeT*, allocator <_TypeT*> > &x,
const deque <_TypeT*, allocator <_TypeT*> > &y)
{
return !(x == y);
}
template <class _TypeT>
inline bool operator> (const deque <_TypeT*, allocator <_TypeT*> > &x,
const deque <_TypeT*, allocator <_TypeT*> > &y)
{
return y < x;
}
template <class _TypeT>
inline bool operator>= (const deque <_TypeT*, allocator <_TypeT*> > &x,
const deque <_TypeT*, allocator <_TypeT*> > &y)
{
return !(x < y);
}
template <class _TypeT>
inline bool operator<= (const deque <_TypeT*, allocator <_TypeT*> > &x,
const deque <_TypeT*, allocator <_TypeT*> > &y)
{
return !(y < x);
}
template <class _TypeT>
inline void swap (deque <_TypeT*, allocator <_TypeT*> > &a,
deque <_TypeT*, allocator <_TypeT*> > &b)
{
a.swap(b);
}
#endif // !defined(_RWSTD_NO_NAMESPACE) || !defined(_RWSTD_NO_PART_SPEC_OVERLOAD)
_RWSTD_NAMESPACE_END // std
#endif /*__STD_DEQUE_SPEC__*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -