set
:不重複的集合#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> s;
s.insert(5);
s.insert(3);
s.insert(8);
s.insert(5);
cout << "Set 裡的元素:" ;
for (const auto &x:s)
{
cout << x << " ";
}
return 0;
}
📌 在集合中,重複的元素會被省略
📌 const auto → 只看不改
map
:像字典一樣的結構#include <iostream>
#include <map>
using namespace std;
int main()
{
map<string, int> score;
score["Alice"] = 90;
score["Bob"] = 75;
score["Charlie"] = 82;
cout << "Alice 的分數:" << score["Alice"] << endl;
cout << "所有人的成績:" << endl;
for (const auto &p : score)
{
cout << p.first << " -> " << p.second << endl;
}
return 0;
}
📌 二維的問題,十分適合使用map
📌 first → 存放的第一個值
set
vs map
特性 | set | map |
---|---|---|
資料型態 | 單一元素 | Key-Value 配對 |
是否排序 | 會自動排序 | 會自動依 key 排序 |
重複元素 | 不允許 | key 不允許,value 可重複 |
常見用途 | 唯一 ID 集合 | 字典、成績冊、設定表 |
set
→ 處理「不重複、唯一」的資料,例如用來檢查輸入是否重複
map
→ 能夠快速找到 key 對應的 value,適合用來做查詢或管理設定
📌 共同特點是會自動排序,不用額外處理排列問題