5

非常に独特です:

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

4

3 に答える 3

18

std::mapユニークキーです。13、に変換すると5すべてが生成されます。truebool

于 2015-02-19T00:55:23.907 に答える
7

推測ですが、最初のマップにboolはキー タイプがあり、すべての値1, 3 and 5が true と評価されます。

同じエントリを書き換えるだけです。

于 2015-02-19T00:55:35.983 に答える
6

最初のマップには bool がキーとして含まれています。bool の値は 2 つだけです。入力として int を指定します。0 以外の整数は true、0 の整数は false です。したがって、すべてのキーは真です。それらのうちの 2 つは最後のものによって上書きされます。これがサイズが 1 である理由です。

于 2015-02-19T00:55:47.553 に答える