字典排序map C 演算法與資料結構之map

2021-10-25 13:28:31 字數 1174 閱讀 6560

管理元素集合的stl容器大致分為兩類。一類是有順序的集合,稱為序列式容器;另一類是經過排序的集合,稱為關聯式容器。

序列式容器會將新新增的元素置於特定為位置,這個位置由插入的時間和地點決定,與元素本身的值無關。前面介紹過的vector和list就是很有代表性的序列式容器。

相對地,關聯式容器會依據特定的排序標準來決定要新增的元素的位置。stl為使用者提供了set、map、multiset、multimap容器。

關聯式容器會在管理資料的過程中,自動給元素排序。雖然序列式容器也能進行排序,但是關聯式容器的優勢在於,開源隨時採用二分搜尋法,搜尋元素的效率極高。

map是以鍵與值的組合為元素的集合。每個元素擁有乙個鍵和乙個值,集合以鍵作為排序標準。這裡的map和python中的dict類似,各元素的鍵唯一,不存在重複。map可以看作是一種能使用任意型別元素作為下標的關聯式容器。

map的用法:

函式名功能

複雜度size()

返回map中的元素數

o(1)

clear()

清空map

o(1)

begin()

返回指向map開頭的迭代器

o(1)

end()

返回指向map末尾的迭代器

o(1)

insert((key, value))

向map中插入元素(key, value)

o(logn)

erase(key)

刪除鍵值為key的元素

o(logn)

find(key)

搜尋與key一致的元素,並且返回指向該元素的迭代器。若沒有與key鍵值一致的元素,則返回end()

o(logn)

map與set一樣,也是通過平衡二叉樹來實現的。因此元素的插入、刪除、搜尋的複雜度都是o(logn)

下面的一串**演示了map的幾種基本用法

#include#include#includeusing namespace std;

void print(mapt)

else

{cin>>ipt;

if(m[ipt])

cout<

資料結構與演算法 字典樹

字典樹又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。字典樹 桀驁 2018 8 3 in...

js資料結構與演算法 字典

一 字典的主要操作 字典的key是不能重複的 value是可以重複的,重複後面的會覆蓋前面的 二 實現 class dictionary 儲存字典key value 是否有key has key 設定key value set key,value 刪除key delete key return fa...

資料結構與演算法 排序

排序原理 1.比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置。2.對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的最後一對元素。最終最後位置的元素就是最大 值。氣泡排序的 實現 public static void sortpop int arr 測試 public st...