日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Deque(双向队列

發布時間:2024/8/23 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Deque(双向队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++ Deque(雙向隊列)

C++ Deque(雙向隊列)

??? 是一種優化了的、對序列兩端元素進行添加和刪除操作的基本序列容器。它允許較為快速地隨機訪問,但它不像vector?把所有的對象保存在一塊連續的內存塊,而是采用多個連續的存儲塊,并且在一個映射結構中保存對這些塊及其順序的跟蹤。向deque?兩端添加或刪除元素的開銷很小。它不需要重新分配空間,所以向末端增加元素比vector?更有效。

??? 實際上,deque?是對vector?list?優缺點的結合,它是處于兩者之間的一種容器。

Deque?的特點:

????(1)?隨機訪問方便,即支持[ ]?操作符和vector.at()?,但性能沒有vector?好;

??? (2)?可以在內部進行插入和刪除操作,但性能不及list?

??? (3)?可以在兩端進行push?、pop?

??? (4)?相對于verctor?占用更多的內存。

雙向隊列和向量很相似,但是它允許在容器頭部快速插入和刪除(就像在尾部一樣)。

?

1.Constructors?創建一個新雙向隊列

???語法:

??????deque();//創建一個空雙向隊列

??????deque( size_type size );//?創建一個大小為size的雙向隊列

??????deque( size_type num, const TYPE &val ); //放置numval的拷貝到隊列中

??????deque( const deque &from );//?from創建一個內容一樣的雙向隊列

??????deque( input_iterator start, input_iterator end );

??????// start?和?end -?創建一個隊列,保存從startend的元素。

2.Operators?比較和賦值雙向隊列

??????//可以使用[]操作符訪問雙向隊列中單個的元素

3.assign()?設置雙向隊列的值

???語法:

??????void assign( input_iterator start, input_iterator end);

??????//startend指示的范圍為雙向隊列賦值

??????void assign( Size num, const TYPE &val );//設置成numval。

4.at()?返回指定的元素?
???語法:

??????reference at( size_type pos );?返回一個引用,指向雙向隊列中位置pos上的元素

5.back()?返回最后一個元素

???語法:

??????reference back();//返回一個引用,指向雙向隊列中最后一個元素

6.begin()?返回指向第一個元素的迭代器

???語法:

??????iterator begin();//返回一個迭代器,指向雙向隊列的第一個元素

7.clear()?刪除所有元素

8.empty()?返回真如果雙向隊列為空

9.end()?返回指向尾部的迭代器

10.erase()?刪除一個元素

???語法:

??????iterator erase( iterator pos ); //刪除pos位置上的元素

??????iterator erase( iterator start, iterator end ); //刪除startend之間的所有元素

??????//返回指向被刪除元素的后一個元素

11.front()?返回第一個元素的引用

12.get_allocator()?返回雙向隊列的配置器

13.insert()?插入一個元素到雙向隊列中

???語法:

??????iterator insert( iterator pos, size_type num, const TYPE &val ); //pos前插入numval

??????void insert( iterator pos, input_iterator start, input_iterator end );

??????//插入從startend范圍內的元素到pos前面

14.max_size()?返回雙向隊列能容納的最大元素個數

15.pop_back()?刪除尾部的元素

16.pop_front()?刪除頭部的元素

17.push_back()?在尾部加入一個元素

18.push_front()?在頭部加入一個元素

19.rbegin()?返回指向尾部的逆向迭代器

20.rend()?返回指向頭部的逆向迭代器

21.resize()?改變雙向隊列的大小

22.size()?返回雙向隊列中元素的個數

23.swap()?和另一個雙向隊列交換元素

???語法:

??????void swap( deque &target );//?交換target和現雙向隊列中元素


總結

以上是生活随笔為你收集整理的C++ Deque(双向队列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。