为什么地图的大小在比较时会发生变化

  • 本文关键字:比较 变化 地图 c++
  • 更新时间 :
  • 英文 :


使用以下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])

这将调用具有密钥chmap::operator[]

如果键与map中的某个元素匹配,它将返回该元素的值。如果键与映射中的任何元素都不匹配,函数将插入一个具有该键的新元素,并返回对其映射值的引用。

您可以使用map::find检查钥匙是否在地图中。

最新更新