我有一些數據需要存儲並高效查找。優選使用C. 數據文件的每一行是按以下格式:3查找值的有效方法int
key1 key2 key3 data
其中key1
,key2
,key3
是整數,且data
是float
陣列。
我的想法轉換成key1,2,3一個字符串,然後用C++ std::map
串映射到一個浮動指針:
std::map<string, float*>
有沒有更好的做這件事的方法嗎?
注意:整數鍵1,2,3的範圍是0-4000,但是非常稀疏。換句話說,如果你經歷了key1中的所有值,你會在0-4000範圍內發現100個唯一的int。
你打算使用C還是C++? – AusCBloke 2012-08-11 01:29:18
可用於C的解決方案和可用於C++的解決方案非常不同。你說「最好使用C」,但繼續建議使用'std :: map'的C++實現。你真的想要哪種語言? – 2012-08-11 01:32:27
如果你要去C++一個包含所有三個鍵的類與一個比較運算符,其中包含邏輯以正確比較它們的最小公共順序中的鍵將是好 – 2012-08-11 01:34:24