非常奇怪:
map<bool,int> mb={{1,2},{3,4},{5,0}};
cout << mb.size();
map<int,int> mi={{1,2},{3,4},{5,0}};
cout << mi.size();
打印出来
13
答案 0 :(得分:18)
std::map
是唯一键。转换为1
时,3
,5
,true
都会产生bool
。
答案 1 :(得分:7)
只是一个猜测,但您的第一张地图的密钥类型为bool
,所有值1, 3 and 5
的评估结果为真。
您只需重写相同的条目。
答案 2 :(得分:6)
你的第一张地图以bool为关键。 bool只有两个值。您提供整数作为输入。非0英寸为真,0英寸为假。因此,所有的钥匙都是正确的。其中两个被最后一个覆盖。这就是尺寸为1的原因。