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

elg*_*noh 2 c c++ lookup dictionary map

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

key1 key2 key3 data  
Run Code Online (Sandbox Code Playgroud)

其中key1,key2,key3是整数,并且data是数组float.

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

std::map<string, float*>
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

注意:整数key1,2,3的范围为0-4000,但填充非常稀疏.换句话说,如果你遍历key1中的所有值,你会在0-4000范围内找到<100 unique int.

Gre*_*ill 5

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

std::map<std::tuple<int, int, int>, float *>
Run Code Online (Sandbox Code Playgroud)