STL學習筆記 關聯容器

2021-09-26 23:11:55 字數 749 閱讀 7934

stl中常用的關聯容器有四種:set、map、mutimap、multiset。這四種容器中的元素都是按照鍵有序排列的,因此關聯容器的鍵值必須是可比較的。

如果鍵值是基本型別可以直接使用,如果鍵值是自定義型別,需要定義帶有比較謂詞的建構函式map中儲存著一系列的鍵值對兒,每個鍵對應乙個值,鍵類似有索引的功能,具有唯一性,值表示該鍵關聯的資料。

字典是乙個典型的map,每個單詞相當於乙個鍵,對應的釋義相當於鍵值

set跟map的區別是,set中每個元素只包含乙個鍵,該鍵同樣具有唯一性

例如,可以使用set儲存班級內男同學的學號(不需要知道學號對應的姓名)

multiset和multimap與set和map的區別在於,其可以有重複的鍵,例如乙個身份證號對應多張銀行卡

set和map的訪問非常高效,可以達到對數的級別,效率上的優勢是通過紅黑樹這種複雜的資料結構保證的

真題:set和map配合使用的例子

/*

開戶資訊1234567890987654321,前9位為身份資訊,身份資訊前3位為城市資訊,後10位為賬戶資訊。現在需要輸出所有開戶資訊覆蓋的城市資訊,以及開戶超過兩個的身份資訊

*/void statistic(vector&acc,set&city,map&people)

for(auto it = city.begin();it!=city.end();it++)else

}}

stl之關聯容器學習筆記1

概述 stl定義了另一種容器,名曰關聯容器,關聯容器和順序容器的本質區別在於 關聯容器通過鍵key來儲存和讀取元素,而順序容器則通過元素在容器中的位置順序儲存和訪問元素。關聯容器的大部分行為與順序容器相同,但其獨特之處在於支援鍵的使用。stl提供了兩個基本的關聯容器 1 map 容器中以鍵值的形式來...

stl之關聯容器學習筆記2

set型別容器 set容器只是單純的鍵的集合,其中的鍵必須唯一,且不能修改 const 舉個例子 某軟體提供黑名單功能,其黑名單就可用set容器配置。在做某項操作前,先檢查黑名單。2 set中,value type不是pair型別,而是與key type相同的型別。因為只是單純的鍵集合,沒有關聯的值...

STL學習 四 關聯容器

一 簡介 二 操作 排序順序 預設為從小到大 加上仿函式greater之後為從大到小 2.插入只提供insert函式 3.屬性 size 沒有capacity 因為本質和鍊錶類似 迭代器也只能 操作 4.刪除 earse 和clear 5.查詢 可以重複的set集合,其他和set類似 一 簡介 鍵值...