我用以下头文件定义了一个 C++ 类:
class EarleyParser
{
public:
EarleyParser();
virtual ~EarleyParser();
void initialize( string filePath, bool probabilityParse );
private:
bool probabilityParser;
typedef unordered_map< string, list<Production>* > productionHashTable;
productionHashTable earlyHashTable;
};
如您所见,该类的成员元素是一个unordered_map
,其关键元素是字符串,内容元素是指向另一个名为的类的对象列表的指针Production
(不要介意,它可以是任何东西)。
我的问题是我是否应该将它留给默认析构函数来释放分配的内存,或者我是否应该手动检查哈希表并删除它的所有元素。
在第二种情况下,程序是什么?为每个元素调用这个可以吗?
EarleyParser::productionHashTable::const_iterator got = this->earlyHashTable.find( "key" );
delete[] got->second;