3
삽입을 사용한 후 std::map
이 값을 대체하지 않는 이유가 궁금합니다.
예 :std :: map의 값으로 boost :: flyweight 값
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());
}
인쇄됩니다 int
의를 사용하는 경우
str equals 2
Inside map at "1" is: 1
flyweight<string>
사용은, 같은 일이 발생합니다.
Windows OS, visual 2010 ide에서 작업.
감사합니다, std::map
의
어 .. thanks P0W. 그것은 내 편이 나쁘다는 것을 나는 확신했다. testMap [ "1"] = flyweight ("2"); 수정 사항. –
@AleksanderFular 예 연산자'[]'는 키의 값을 갱신하지만, 아직 존재하지 않는다면 새로운 키를 삽입한다는 점을 지적하십시오 – P0W