容器 順序容器 關聯容器

2022-06-09 19:06:09 字數 542 閱讀 3298

容器分為:順序容器、關聯容器,示意圖如下:

順序容器:只儲存值,

關聯容器:key-value形式,關聯容器的乙個元素包含兩個部分:鍵值對(key-value) 

有序容器:底層實現為紅黑樹,即容器內的key是有序的

無序容器:底層實現為hash table,雜湊表

區別:順序容器通過元素在容器中的位置順序儲存和訪問元素,而關聯容器則是通過鍵(key)儲存和讀取元素的。

vector:

emplace_back() 和 push_back() 的區別,就在於底層實現的機制不同。push_back() 向容器尾部新增元素時,首先會建立這個元素,然後再將這個元素拷貝或者移動到容器中(如果是拷貝的話,事後會自行銷毀先前建立的這個元素);而 emplace_back() 在實現時,則是直接在容器尾部建立這個元素,省去了拷貝或移動元素的過程。

emplace & insert:與上面的類似,emplace效率更高

關聯容器和順序容器的差別

關聯容器和順序容器的本質差別在於關聯容器通過鍵 key 儲存和讀取元素,順序容器則通過元素在容器中的位置順序儲存和訪問元素。順序容器list vector deque和關聯容器map set型別分別適用的情況 1 list 型別適用於需要在容器中間插入和刪除元素的情況,例如以無序方式讀入一系列學生資...

順序容器與關聯容器的不同

想要理解關聯容器與順序容器的不同,最關鍵的是理解其基礎的資料結構,這樣就很自然的理解它所表現出來的性質。兩類容器的根本差別在於,順序容器中的元素是 順序 儲存的 鍊錶容器中的元素雖然不是在記憶體中 連續 儲存的,但仍然是按 順序 儲存的 理解順序的關鍵,是理解容器支援的操作形式以及效率。對vecto...

容器 順序容器

容器 include include include 容器元素型別必須滿足 1.支援賦值運算 2.物件可以複製 而io庫型別這兩個都不支援,因此,不能建立存放io型別物件的容器 容器的容器 記得加空格 list vector a list容器迭代器不支援演算法運算 也不支援關係運算 等,它只有自增,...