【发布时间】:2012-08-08 07:32:25
【问题描述】:
我有一些需要有效存储和查找的数据。最好使用 C. 数据文件的每一行格式如下:
key1 key2 key3 data
其中key1、key2、key3 是整数,data 是 float 的数组。
我正在考虑将key1,2,3转换成字符串,然后使用C++std::map将字符串映射为浮点指针:
std::map<string, float*>
有没有更好的方法?
注意:整数 key1,2,3 的范围为 0-4000,但非常稀疏。换句话说,如果您遍历 key1 中的所有值,您会发现在 0-4000 范围内的唯一 int
【问题讨论】:
-
你打算用C还是C++?
-
可用于 C 的解决方案和可用于 C++ 的解决方案非常不同。您说“最好使用 C”,但继续建议使用
std::map的 C++ 实现。你真正想要哪种语言? -
如果你要 c++ 一个包含所有三个键的类和一个比较运算符,其中包含正确比较键的最不常见顺序的逻辑会很好
-
能否提供 C 和 C++ 的解决方案,仅供学习之用,谢谢
-
你可以 - 但你不能在 C 答案中使用 std::map - 这会大大增加答案的复杂性,因为你必须编写容器
标签: c++ c dictionary map lookup