STL學習筆記之 (三)容器 deque

2021-06-08 00:00:42 字數 752 閱讀 1891

deque,即double end queue,雙向佇列。

不同的平台會提供不同版本的deque實現策略,但歸結起來,deque應該是一種指標陣列實現。

使用deque可以實現元素的隨機訪問和遍歷,同時在起始端和末端插入和刪除元素的效率很高;但是,在中間部分插入和刪除元素會導致很低的工作效率。

deque的記憶體使用可能是分塊儲存的,這樣可以避免大塊記憶體的重新分配。

使用size()可以知道deque中已經存放的元素個數,capacity()可以知道已分配記憶體的元素個數。empty可以用來檢視deque是否為空。

可以使用[size_type n]操作符來得到給定索引對應的元素,也可以使用at(size_type n)函式來檢視對應索引的元素。front()和back()分別返回deque中第乙個和最後乙個元素。

push_back(const t&)和pop_back()可以在最後乙個位置之後插入或者刪除元素,push_front(const t&)和pop_front()可以在第乙個位置之前插入或者刪除元素,insert(iterator position, const t& x)和erase(iterator position)可以來插入或者刪除任意位置的元素,clear()可以清空整個deque的元素。

begin()和end()分別返回指向第乙個元素和最後乙個元素之後位置(past-the-end)的迭代器,rbegin()和rend()分別返回反向的指向最後乙個元素和第乙個元素之前元素的迭代器。

swap()可以與另外的deque的內容進行交換。

STL中序列式容器之三deque

1.deque概述 vector是單向開口的連續線性空間,而deque則是一種雙向開口的連續線性空間。所謂雙向開口,意思是可以在頭尾兩端都可以做元素的插入與刪除操作。vector當然也可以在頭尾兩端進行操作 從技術觀點 但是其頭部操作其差,無法被接受。deque和vector的最大差異,一在於deq...

STL學習(三)deque容器學習

deque的操作函式 建構函式和析構函式 非變動性操作 變動性操作 deque記憶體 deque從邏輯上來看是連續的記憶體,本質上是由一段段固定大小 的連續空間組成。deque採用類似索引的結構管理記憶體,如下 採用一小塊連續的記憶體索引快取結點,每乙個快取結點也是一段連續的空間,可以儲存多個資料。...

STL學習筆記 map multimap容器

簡介 map是標準的關聯式容器,乙個map是乙個鍵值對的序列,即 key,value 提供基於key的快速檢索能力 map中key的值是唯一的。map中的元素按照一定的順序排列,元素插入是按照排序規則插入的,不能指定位置插入 map的具體實現是紅黑樹變體的平衡二叉樹資料結構。插入和刪除比vector...