gpt4 book ai didi

c++ - uint16_t 到 uint16_t 映射的最高效容器

转载 作者:搜寻专家 更新时间:2023-10-30 23:51:40 25 4
gpt4 key购买 nike

我正在为处理能力非常有限的机器开发程序,我想在其中将 uint16_t 键映射到 uint16_t 值。

我目前正在使用 std::map 使用非安全读取:

std::map<uint16_t, uint16_t> m;
//fill m only once

while(true){
auto x = m[y];
}

性能仍然不能满足要求。在执行速度方面有更好的解决方案吗?

编辑:一些信息:

  • 项目总数少于 500
  • 只插入一次
  • 查询值超过 250 次/秒
  • 键和值是唯一的
  • 内存非常有限,整体内存为512KB,这部分代码的空闲内存不到50KB
  • 100 MHz 单核处理器

最佳答案

没有关于您的 map 的更多上下文,

如果你打算使用很多键,像之前建议的大数组会很容易处理,因为不会发生冲突,但如果你不打算使用所有内存,它可能会浪费.

如果您打算使用相当数量的数据,但又不足以产生过多的哈希冲突,则 std::unordered_map 已摊销 O(1) 查找,如果您不关心它们的顺序'存储在,这可能是一个很好的猜测。

如果您使用的数据不多并且要求数据灵活,std::vector 是一个不错的选择

鉴于我们所知道的是它是 uin16_t 到 uint16_t 的映射,因此没有最佳答案。

关于c++ - uint16_t 到 uint16_t 映射的最高效容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54258881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com