deque成员函数的解析

 

deque(双端队列)

deque同样是一种顺序容器,里面的元素的一样按照严格的线性序列排序

这种容器与其他容器相比,能够更有效的在两端执行插入和删除,deque在第一个元素能够执行插入,这是个优势,deque的缺点在与它的内存空间不是连续的,是有多块内存使用链表结构链接在一起,不过这样的好处是更有效的使用内存,能够自动释放内存,而vector不会释放内存,直到程序结束才释放.这样deque与vector的各具有的优势就显示出来了,vector使用的是数组,deque使用的是链表,如果只在尾部插入数据,vector的效率会高一些,但在其他地方插入,deque效率会高一些,而且当vector中的元素大于容量时要使用realloc()重新分配内存,这会导致vector中元素的引用,指针和迭代器失效,而且重新分配内存会花很多时间,而deque增大或变小不会导致引用,指针和迭代器失效,因为它只改变链表结构.

 

deque的成员函数和vector的成员函数用法基本一样

 

1.构造函数

explicit deque ( const Allocator& = Allocator() );

explicit deque ( size_type n, const T& value= T(), const Allocator& = Allocator() );

template <class InputIterator>

         deque ( InputIterator first, InputIterator last, const Allocator& = Allocator() );

deque ( const deque<T,Allocator>& x );

 

2.虚构函数

~deque ( );

 

3.重载了=符号

deque<T,Allocator>& operator= ( const deque<T,Allocator>& x );

 

4.deque::begin()

iterator begin ();

const_iterator begin () const;

 

5.deque::end()

iterator end ();

const_iterator end () const;

 

6.deque::rbegin()

reverse_iterator rbegin();

const_reverse_iterator rbegin()  const;

 

7.deque::rend()

reverse_iterator rend();

const_reverse_iterator rend() const;

 

 

 

8.deque::size()

size_type size() const;

 

 

9.deque::max_size()

size_type max_size () const;

 

10.deque::resize()

void resize ( size_type sz, T c = T() );

 

11.deque::empty()

bool empty ( ) const;

 

12.deque::operator[] //用于下标访问元素

reference operator[] ( size_type n );

const_reference operator[] ( size_type n ) const;

 

13.deque::at()

const_reference at ( size_type n ) const;

      reference at ( size_type n );

 

14.deque::front()

reference front ( );

const_reference front ( ) const;

 

15.deque::back()

reference back ( );

const_reference back ( ) const;

 

16.deque::assign()

template <class InputIterator>

  void assign ( InputIterator first, InputIterator last );

void assign ( size_type n, const T& u );

 

17.deque::push_back()

void push_back ( const T& x );

 

18.deque::push_front() //从前面插入元素

void push_front ( const T& x );

 

19.deque::pop_back()

void pop_back ( );

 

 

20.deque::pop_front() //从首位置删除元素

void pop_front ( );

 

21.deque::insert()

iterator insert ( iterator position, const T& x );

    void insert ( iterator position, size_type n, const T& x );

template <class InputIterator>

    void insert ( iterator position, InputIterator first, InputIterator last );

 

22.deque::erase()

iterator erase ( iterator position );

iterator erase ( iterator first, iterator last );

 

23.deque::swap()

iterator erase ( iterator position );

iterator erase ( iterator first, iterator last );

 

24.deque::clear()

void clear ( );

 

 

 

 

 

 

 相关阅读链接:

vector成员函数的解析

cplusplus中的deque讲解

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值