std::map使用问题
昏啊。
std::map 用起来会出样的问题::std::map <key,ClassA>
classA 使用指针好,还是引用,还是拷贝。。昏啊。
classA*指针:自己释放,好像没有问题(不释放程序停止他也会自己搞顶)。
但是如果忘记了那里delete了 classsA 就内存XXX了
classA&引用的话,一个小心那里提前被谁释放了。。不可预测
如下:
class mymap{
public:
::std::map mapYe <key,ClassA>
}
class myuserMap{
public:
void addUit(){
Class a;
a.xx = yy;
mapYe[ "kk "] =a;
}
}
一切由天定了。。。如果你在其他地方用到mapYe[ "kk "]的话
classA:拷贝。我的最爱,可是靠 要自己实现深度拷贝。麻烦。
如果classA 里面
需要把operator= 搞定。
[解决办法]
不管你用不用STL,自己写的类都要实现正确的赋值运算符和拷贝构造函数。
[解决办法]
可以考虑用std::tr1::shared_ptr <class A> 。
[解决办法]
尽量让你的对象满足“值语义”。
[解决办法]
指针,对象都放,引用没放过