我想知道为什么std::map
使用插入后不替换值。
例子:
using std::string;
using boost::flyweight;
using std::map;
int main()
{
map<string,flyweight<string>> testMap;
flyweight<string> str("1");
testMap.insert(std::make_pair("1","1"));
testMap.insert(std::make_pair("1","2"));
str = "2";
printf("Inside map at \"1\" is:%s\r\n",testMap.at("1").get().c_str());
printf("str equals %s",str.get().c_str());
}
将打印:
Inside map at "1" is: 1
str equals 2
仅用flyweight<string>
作示例,使用int
s 时也会发生同样的情况。
在 windows 操作系统上工作,visual 2010 ide。
谢谢,