c++ - 通过 3 int 查找值的有效方法

标签 c++ c dictionary lookup

我有一些数据需要有效地存储和查找。最好使用 C。 数据文件的每一行都采用以下格式:

key1 key2 key3 data  

其中 key1key2key3 是整数,datafloat< 的数组

我正在考虑将 key1,2,3 转换为字符串,然后使用 C++ std::map 将字符串映射到浮点指针:

std::map<string, float*>

有更好的方法吗?

注意:整数 key1,2,3 的范围是 0-4000,但非常稀疏。换句话说,如果你遍历 key1 中的所有值,你会发现 < 100 个在 0-4000 范围内的唯一整数。

最佳答案

您可以使用 std::tuple将三个值合二为一:

std::map<std::tuple<int, int, int>, float *>

关于c++ - 通过 3 int 查找值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911125/

相关文章:

c - 回文C程序大写字母转小写字母

java - 在 Java/PHP/Python 框架内运行已编译的 C/C++ 代码中的算法?

java - 如何将流中的一个字符串映射到另一个字符串?

c++ - BlackJack 创建动态牌组 CO OOP

c - printf ("%c"的含义,**++argv);?

C++变量重定义

python - 切片字典

java - 从列表中删除元素会导致 for 循环不增加?

c++ - 我应该使用 Boost.Test 分别测试不同的类吗?

c++ - 将 cout 和 stdout 都重定向到 C++ 中的字符串以进行单元测试