我正在为处理能力受限的机器开发程序,我想将uint16_t
键映射到uint16_t
值。
我目前正在使用std::map
使用不安全的阅读方法:
std::map<uint16_t, uint16_t> m;
//fill m only once
while(true){
auto x = m[y];
}
性能仍然不能满足要求。在执行速度方面是否有更好的解决方案?
编辑:
一些信息:
最佳答案
没有关于 map 的更多背景信息,
如果您打算使用很多键,那么像以前建议的那样,使用大型数组就很容易处理,因为不会发生冲突,但是如果您不打算使用所有内存,那可能会很浪费。
如果您打算使用大量数据,但不足以导致太多的哈希冲突,则std::unordered_map已摊销O(1)查找,并且如果您不关心它们的存储顺序在,这可能是一个很好的猜测。
如果您使用的数据不是很多并且需要灵活,std::vector是一个不错的选择
众所周知,这是一张从uin16_t到uint16_t的 map ,没有最佳答案。
关于c++ - uint16_t到uint16_t映射的最有效容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54258881/