【发布时间】:2014-07-10 14:14:47
【问题描述】:
例如,考虑下面的 trie 实现。
struct Trie: unordered_map<char, pair<bool, Trie> >
是否应该存储指向struct Trie 的指针?
struct Trie: unordered_map<char, pair<bool, Trie *> >
既然struct Trie 对象可以变得非常大,那么第一个实现会随着trie 变大而降低效率吗?
这里,管理Trie的内存分配和释放应该不会太麻烦,所以不考虑手动new / delete的麻烦,应该首选哪个实现?
【问题讨论】:
-
如果不考虑“手动
new/delete”的麻烦,如何回答这个问题?根据我的经验,这是通过 API 引起各种连锁反应的主要问题。 -
但就纯粹的效率而言,应该首选哪种方法?
-
从标准容器公开继承可能会在未来要求未定义的行为。
-
当然,trie 不是哈希表......
标签: c++ stl hashtable unordered-map trie