我正在开发一个高性能应用程序,所有调用必须得到证明。在每个事务的开始时,我有一个地图用于查找,我希望对其进行改进。该地图在启动时加载,并且之后不会更改。
下面地图中的键是std::string,但如果需要,它可以更改为char数组。C或C ++作为解决方案都可以接受。
typedef stdext::hash_map<std:string, int> symbols_t;
有没有其他解决方案可以消除查找或更快地完成操作?
感谢您的帮助。
编辑中的其他信息:
1. hash_map当前有350,000个元素。
2. 每个键值通常为4到10个字符长度。
3. 从第三方API的回调中接收信息。 回调给出一个符号,该符号用作进行映射查找时的键值。 其余软件由从映射查找返回的int驱动。
感谢:感谢大家的意见。 您为我提供了几种探索途径。 我一定会尝试这些方法。 我很感激您的帮助。
char*
替换std::string
,整体性能会有很大的不同。然而,这肯定会使代码难以维护。 - ereOn