读书人

std:map使用有关问题

发布时间: 2012-02-13 17:20:26 作者: rapoo

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> 。
[解决办法]
尽量让你的对象满足“值语义”。

[解决办法]
指针,对象都放,引用没放过

读书人网 >C++

热点推荐