文章目录
- 前言
- 一、map和set基础知识
- 二、set与map使用示例
- 1.set去重操作
- 2.map字典统计
- 总结
前言
本章主要介绍map和set的基本知识与用法。
一、map和set基础知识
map与set属于STL的一部分,他们底层都是是同红黑树
来实现的。
①set常见用途是去重 ,set不允许修改key
值。
②map是<key,value>
结构,同样也不允许修改key
值,map支持下标访问。
二、set与map使用示例
1.set去重操作
#include<iostream>
#include<set>
#include<string>
#include<vector>
using namespace std;int main() {vector<string> v1 = { "abandon","apple","banana","apple","orange" };set<string> s1(v1.begin(), v1.end());for (const auto& e : s1) {cout << e << " ";}return 0;
}
可从下图看出,对于重复的apple,set成功完成了去重。
2.map字典统计
#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;int main() {string str("A blockhouse is a small castle that has four openings through which to shoot");vector<string> v1;size_t cur = 0;size_t pos = 0;while (pos != string::npos) {pos = str.find(" ", cur);string s(str, cur, pos - cur);cur = pos + 1;v1.emplace_back(s);}map<string, int> mp;for (const auto& e : v1) {mp[e]++;}for (const auto& e : mp) {cout << e.first << ":" << e.second << endl;}return 0;
}
可以看到map很好统计了一句话中所有单词出现的频率。
总结
本章主要介绍了map和set的基础知识,并且列举了一些应用场景。希望对读者有所帮助。