deque以及使用舉例 C 基礎

2021-10-05 11:21:01 字數 1007 閱讀 6790

序列式容器:

vector是單向開口的連續線性空間,deque是一種雙向開口的連續線性空間。所謂雙向開口,意思就是可以在頭尾兩端分別做元素的插入和刪除操作。

deque和vector的最大差異:

deque是一段一段的定量連續空間組成的,需要維護這些定量空間所需要的內部資料結構肯定是要比vector複雜許多,所以,當對deque進行排序操作時候,為了提高效率,可將deque完整的複製到乙個vector身上,將vector進行排序之後,再複製回deque。

**示例:

#include

"test.h"

#include

#include

#include

#include

#include

#include

#include

//為了使用find、sort等方法

void

main()

vector<

int>

v3(v1.

begin()

, v1.

end())

;sort

(v3.

begin()

, v3.

end())

;//使用這樣的方法對deque排序

參考書籍:

《stl原始碼剖析》

map以及使用舉例 C 基礎

關聯式容器 map的特性就是所有元素都會根據元素的key被自動排序,map的所有元素是同時擁有key和value。map不允許兩個元素有相同的key。而當map同時擁有key和value的時候,它的迭代器可以修改其中的內容嗎?key不可以,因為key是用來排列資料的,但是value的值就可以改變了。...

C協程使用舉例

c協程使用舉例 sniperhw 基本思想是,建立乙個排程器,用於將處於活動狀態的協程排程執行,排程器維護著乙個actived列表,呼叫spawn建立協程時,將新建立的協程新增到活動列表中。呼叫schedule將啟動排程器主迴圈.coro.h ifndef coro h define coro h ...

C 標準庫 deque使用注意事項

deque需要注意的幾點 1.兩端都能快速安插元素和移除元素,這些操作可以在常數時間內完成 2.deque內部結構會多乙個間接過程,訪問元素動作會稍微慢一點 3.迭代器需要在不同區塊間跳轉,所以必須使用特殊的智慧型指標,非一般指標 4.duque不支援對容量和記憶體重分配時機的控制,除了頭尾兩端,在...