将元素插入到c ++ map中 - 插入方法的差异

时间:2012-12-01 14:47:11

标签: c++ map

插入c ++ map的这两个版本之间的区别是什么:

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

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

此致

1 个答案:

答案 0 :(得分:5)

如果密钥已存在,则第一个将更新值,但如果密钥已存在,则第二个将更新密钥。

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>。该对的布尔值告诉您插入是否成功。

现在阅读文档以获取更多详细信息: