在通用容器中找到特定的实现

Find a specific implementation in a generic container

本文关键字:实现      更新时间:2023-10-16

我有一个包含a-s的容器

b,c,d,e,...实施A。

什么是最有效的&最安全的查找方法,例如第一个C对象?(所以第一个对象,其类型为c)

我想到了< lt;字符串,a>,但字符串不是很安全,因为它们仅是检查运行时。

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

i sugest,例如,使用枚举来加速树的搜索和索引。

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

容器可能应该是:

 unordered_map < objType, A* >

但是,如果您需要存储多个类型的一个对象,则考虑使用Multimap

 unordered_multimap < objType, A* >