iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
自我挑戰組

C++入門即放棄系列 第 25

[DAY25]我們來集合!

  • 分享至 

  • xImage
  •  

set:不重複的集合

  • 會自動排序
  • 不允許重複元素
  • 用途:適合存放「唯一」的資料,例如學生學號、玩家 ID。
#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:像字典一樣的結構

  • 存放 key → value 的對應
  • Key 不會重複,會自動排序
  • 用途:像字典、成績冊、電話簿
#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,適合用來做查詢或管理設定

📌 共同特點是會自動排序,不用額外處理排列問題


上一篇
[DAY24]我高你一個維度!
系列文
C++入門即放棄25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言