1
map<pair<double,double>,double> vectorDoubleMap;

vectorDoubleMap[ pair<double, double>(10, 10) ] = 1;          //1.
vectorDoubleMap.insert( pair<double, double>(10, 10), 1);     //2.

「1.」ステートメントのコンパイルは完了しましたが、「2.」ステートメントがコンパイルされていません。

これら2つのステートメントの違いは何ですか?

4

2 に答える 2

1
于 2012-09-13T22:29:23.717 に答える
0

挿入関数を見てください。ペアを使用して挿入する必要があります。

vectorDoubleMap.insert( pair<pair<double,double>,double>(pair<double, double>(10, 10), 1));

または、make_pair関数を使用して、コードをクリーンにします。

vectorDoubleMap.insert( std::make_pair(pair<double, double>(10, 10), 1));

コンパイラエラーが発生した場合、最初に行うことは、エラーメッセージを読み取り、APIリファレンスを確認することです。

于 2012-09-13T22:29:13.593 に答える