3

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

例として使用しますが、sflyweight<string>を使用した場合も同じことが起こりintます。

Windows OS、ビジュアル 2010 IDE で作業しています。
ありがとう、

4

1 に答える 1