【发布时间】:2021-01-10 07:17:43
【问题描述】:
使用下面的C++代码在比较前后打印不同大小的地图。
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
string str1 = "abc", str2 = "def";
map<char, int> mp;
for(char c: str1) mp[c]++;
cout << "Size of map: " << mp.size() << endl;
for(char ch: str2) {
if(mp[ch]) {
// do something...
}
}
cout << "Size of map: " << mp.size() << endl;
return 0;
}
为什么检查key 是否存在于map 中会增加map 的大小?
【问题讨论】:
-
如果你将比较隔离到一个函数中,该函数通过
const&获取地图,你会得到一个compilation error 而不是一个无声的错误。
标签: c++