第21课:map与set
进度 0/24
🗂️
map与set
map与set登场,哈希战力直接拉满!
📖知识引入
📌map键值对
map<string,int>像字典:一个键配一个值,按键秒查值
✍️增删改查
m[key]=val写入、m[key]读取、m.count(key)判断存在、m.erase(key)删除
🚫set自动去重
集合里每个值只存一份,重复插入自动忽略
🔄遍历方式
for (auto& p : m) 遍历,p.first是键、p.second是值
💡
判断键是否存在用m.count(key)返回1或0,比直接m[key]更安全,不会误插入空值
🔍map与set用法演示
map<string, int> score;
score["小明"] = 92; // 插入键值对
score["小红"] = 88;
score["小明"] = 95; // 同键再赋值=修改
cout << score["小明"] << endl; // 95
cout << score.count("小刚") << endl; // 0,不存在
set<int> s;
s.insert(3); s.insert(1); s.insert(3); // 第二个3被忽略
cout << s.size() << endl; // 只有 2 个元素
for (auto& p : score) // 遍历map
cout << p.first << ":" << p.second << endl;map管一一对应,set管独一无二,配合默契
🎯小测验
第1题:map<string,int>中每个元素包含什么?
第2题:向set中两次插入数字3,set的size()是?
第3题:判断map中是否存在键"abc",安全的写法是?
📝本课知识点
- ✓map=键值对字典
- ✓set=自动去重集合
- ✓count查存在,遍历用auto
第21课完成!继续探索下一课吧 🚀
