使用以下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;
}
为什么检查map
中是否存在key
会增加map
的大小?
if(mp[ch])
这将调用具有密钥ch
的map::operator[]
。
如果键与map
中的某个元素匹配,它将返回该元素的值。如果键与映射中的任何元素都不匹配,函数将插入一个具有该键的新元素,并返回对其映射值的引用。
您可以使用map::find
检查钥匙是否在地图中。