深入分析C++中deque的使用

來源:互聯網
上載者:User

首先,當考慮到記憶體配置和執行效能的時候,使用std::deque要比std::vector好。

Deque總覽

deque和vector一樣都是標準模板庫中的內容,deque是雙端隊列,在介面上和vector非常相似,在許多操作的地方可以直接替換。假如讀者已經能夠有效地使用vector容器,下面提供deque的成員函數和操作,進行對比參考。

函數 描述
c.assign(beg,end)
c.assign(n,elem)
將[beg; end)區間中的資料賦值給c。
將n個elem的拷貝賦值給c。
c.at(idx) 傳回索引idx所指的資料,如果idx越界,拋出out_of_range。
c.back() 傳回最後一個資料,不檢查這個資料是否存在。
c.begin() 傳回迭代器重的可一個資料。
c.clear() 移除容器中所有資料。
deque<Elem> c
deque<Elem> c1(c2)
Deque<Elem> c(n)
Deque<Elem> c(n, elem)
Deque<Elem> c(beg,end)
c.~deque<Elem>()
建立一個空的deque。
複製一個deque。
建立一個deque,含有n個資料,資料均已預設構造產生。
建立一個含有n個elem拷貝的deque。
建立一個以[beg;end)區間的deque。
銷毀所有資料,釋放記憶體。
c.empty() 判斷容器是否為空白。
c.end() 指向迭代器中的最後一個資料地址。
c.erase(pos)
c.erase(beg,end)
刪除pos位置的資料,傳回下一個資料的位置。
刪除[beg,end)區間的資料,傳回下一個資料的位置。
c.front() 傳回地一個資料。
get_allocator 使用建構函式返回一個拷貝。
c.insert(pos,elem)
c.insert(pos,n,elem)
c.insert(pos,beg,end)
在pos位置插入一個elem拷貝,傳回新資料位元置。
在pos位置插入>n個elem資料。無傳回值。
在pos位置插入在[beg,end)區間的資料。無傳回值。
c.max_size() 返回容器中最大資料的數量。
c.pop_back() 刪除最後一個資料。
c.pop_front() 刪除頭部資料。
c.push_back(elem) 在尾部加入一個資料。
c.push_front(elem) 在頭部插入一個資料。
c.rbegin() 傳回一個逆向隊列的第一個資料。
c.rend() 傳回一個逆向隊列的最後一個資料的下一個位置。
c.resize(num) 重新指定隊列的長度。
c.size() 返回容器中實際資料的個數。
C1.swap(c2)
Swap(c1,c2)
將c1和c2元素互換。
同上操作。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.