我有一个包含A-s的容器。

B,C,D,E,...实现A.

查找例如第一个C对象的最有效和最安全的方法是什么? (因此第一个对象的类型为C)

我想到了带的unordered_map,但是字符串不是很安全,因为它们仅在运行时检查。

最佳答案

知道哪种方法更有效的唯一方法是在您的平台上进行测试并测量时间,比较解决问题的不同方法。

例如,我建议使用枚举来加速树的搜索和索引。

enum objType
{
   A = 1,
   B,
   C,
   D
};

容器可能应该是:
 unordered_map < objType, A* >

但是,如果您需要存储一个类型的多个对象,则应考虑使用multimap
 unordered_multimap < objType, A* >

09-28 06:57