j*****h 发帖数: 62 | 1 我对STL不熟,请教一个问题。加入我定义了一个类
class foo {
hash_map table;
void addvalue(const string & key, int value) {
table[key] = value;
}
}
假设foo的一个对象a,调用了很多次addvalue, 在a对象析构的时候,没有对a做table.
clear(),或者逐个erase所有的key,会有memory leak吗?换句话说,hash_map的析构
函数会自动释放所有的key, value所使用的内存吗? | s****u 发帖数: 118 | 2 析构的时候会delete掉
【在 j*****h 的大作中提到】 : 我对STL不熟,请教一个问题。加入我定义了一个类 : class foo { : hash_map table; : void addvalue(const string & key, int value) { : table[key] = value; : } : } : 假设foo的一个对象a,调用了很多次addvalue, 在a对象析构的时候,没有对a做table. : clear(),或者逐个erase所有的key,会有memory leak吗?换句话说,hash_map的析构 : 函数会自动释放所有的key, value所使用的内存吗?
| j****g 发帖数: 597 | 3 如果dtor的时候释放,我是不是可以理解为push_back或者operator[]用的是传值参数
,存入的实际是原来对象的一个副本?
不然的话如果有其他对象引用被存入的对象的话就会有问题。 | t****t 发帖数: 6806 | 4 STL way: copy in, copy out.
【在 j****g 的大作中提到】 : 如果dtor的时候释放,我是不是可以理解为push_back或者operator[]用的是传值参数 : ,存入的实际是原来对象的一个副本? : 不然的话如果有其他对象引用被存入的对象的话就会有问题。
|
|