0

次の例で、4 つ目よりも 3 つ目よりも 1 つのペアを優先する正当な理由はありますか?

map<const int, int> test;

test.insert(const pair<const int, int>(3, 9));
test.insert(const pair<int, int>(3, 9));
test.insert(pair<int, int>(3, 9));
test.insert(pair<const int, int>(5, 9));
4

2 に答える 2

1

基本的にはい。ダム コンパイラは、このコードで 1 つの追加の変換コンストラクタを呼び出します。

test.insert(pair<const int, int>(5, 9));

ただし、最適化コンパイラは、他の代替手段と同じになります。

誰がこのようなコードを書きたいと思うでしょうか? 通常、私は書きtest.insert(std::make_pair(3, 9))、気にしません。

于 2012-04-23T10:13:29.590 に答える
0

最後の 2 つのペアは、マップに挿入するときに違いはありません。マップのキーはデフォルトで const です。make_pair 関数を使用するだけです

于 2012-04-23T10:15:23.880 に答える