stl中map插入对象的时候为何创建了两个临时对象?
以下m_requestMap是map<int, Request>对象,在执行这句代码时
- C/C++ code
m_requestMap.insert( map<int, Request>::value_type(request.GetId(),request))
由于为了避免管理内存的麻烦所以不打算用map<int, Request*>存指针.
[解决办法]
用VS2010,它支持C++11里面的move功能,可能会帮助你。
[解决办法]
你自己构造request要调用一次。
当你构造value_type的时候构造第二次。
当value_type被插入map中,构造第三次。
[解决办法]
编译器支持c++11的话,Request类中增加一个move构造函数