1

これら 2 つのバージョンの c++ への挿入の違いは何ですかmap:

map<string,double> myMap;
// version 1
myMap["david"] = 123.123;

// version 2
myMap.insert(std::make_pair("david" ,123.123));

よろしく

4

1 に答える 1

5

最初のものはキーがすでに存在する場合は値を更新しますが、2 番目のものはキーが既に存在する場合は値を更新しません

std::map<string,double> myMap;

//working with operator[]
myMap["david"] = 123.0; //inserts
myMap["david"] = 98.0;   //updates

std::cout << myMap["david"] << std::endl; //prints 98.0 (updated value)

//working with insert
myMap.insert(std::make_pair("nawaz", 100.0)); //inserts
myMap.insert(std::make_pair("nawaz", 878.0)); //no update

std::cout << myMap["nawaz"] << std::endl; //prints 100.0 (old value)

insert関数は を返しますstd::pair<iterator,bool>。ペアのブール値は、挿入が成功したかどうかを示します。

詳細については、ドキュメントを参照してください。

于 2012-12-01T14:48:33.813 に答える