快轉到主要內容

集合與映射 (Set & Map)

本章節將深入探討 C++ STL 中極為重要的關聯式容器。不同於 vector 的循序存取,setmap 透過紅黑樹(Red-Black Tree)實作,能在 \(O(\log N)\) 的時間複雜度內完成資料的搜尋、插入與刪除,是解決複雜演算法問題的利器。

1. Iterator 介紹
#

在使用 Set 與 Map 之前,必須先理解迭代器(Iterator)的概念。本節介紹 begin()end() 以及如何遍歷非連續記憶體的容器。

2. Set 的使用方式
#

Set (集合) 能自動排序並過濾重複資料。本節說明其初始化、插入、刪除以及利用 countfind 判斷元素是否存在的技巧。

3. Map 的使用方式
#

Map (映射) 提供了「鍵-值」(Key-Value) 的對應關係,就像一本自動排序的字典。本節介紹如何建立映射關係以及透過 Key 快速查找資料。

4. Multiset 與 Multimap
#

當資料允許重複時(例如統計相同分數的人數),就需要使用 Multiset 與 Multimap。本節講解它們與普通容器的差異,以及 counterase 的注意事項。