Q
C++鍵值關係
0
A
回答
2
您可能想要使用std::set
作爲存儲。你需要/需要一個比較函數來考慮座標(距離直接從它們派生出來,所以你不需要比較它)。
編輯:根據評論,涉及大量的點,std::unordered_set
可能是一個更好的選擇。它可能會更多的工作,但允許插入和搜索複雜性,你通常希望是恆定的。
2
用適當的散列表示該std::unordered_set
。
1
編輯:問題改變了,緯度/經度消失了,有些事情已經澄清。我開始了:
你的問題似乎意味着距離計算不僅僅是一個簡單的std :: abs(X-Y),因爲根本沒有意義存儲結果來加快速度。我假設你有一個昂貴的函數計算它,讓我們說:
int distance(int X, int Y) { /* heavy stuff */ }
現在,你需要決定是否要調用它,或者如果你已經做了這一點,你可以重複使用的結果。你需要一個容器來保存結果和功能使用:
typedef std::pair< int, int > key;
std::map< key, int > values;
int quick_distance(int X, int Y)
{
const auto k = key(X,Y);
const auto it = values.find(k);
if(it != values.end()) return it->second;
const auto d = distance(X,Y);
values[k] = d;
return d;
}
0
看一看的std ::對,他們是爲這個目的而創建的,你可以使用與這種關聯容器的改進數據結構。
我前段時間用數據對圖形串行數據從microcontrolers,檢查在https://github.com/jpcordovae/GLRealTimeGraphics/blob/master/DataPair.hpp,也許它會幫助你寫的東西。
問候!
JP Cordova E.
相關問題
- 1. 外鍵關係
- 2. 外鍵關係
- 3. 外鍵關係
- 4. MSSQL外鍵關係和空值
- 5. Skip List(DXL/DOORS)上的鍵值關係
- 6. 主鍵關係的外鍵
- 7. SQL外鍵關係
- 8. jpa-主鍵關係
- 9. Django外鍵關係
- 10. 關係數據庫模式 - 關係鍵和外鍵
- 11. c#字典從關鍵字選擇值
- 12. C++ 11 share_ptr作爲值映射關鍵
- 13. 創建在C++的關鍵值對
- 14. c#關鍵字
- 15. Objective-C這個類不是關鍵值findContact的關鍵值編碼。
- 16. C#DATASET關係
- 17. nsfetchedresultscontroller中段名關鍵路徑的無關係值
- 18. 非關係型數據庫,關鍵值或平坦表
- 19. 從Laravel模型關係中分離出關鍵字/值對
- 20. 多對多關係鍵
- 21. @OneToMany關係複合鍵
- 22. 外鍵和實體關係
- 23. EF單向外鍵關係
- 24. Rails中的外鍵關係
- 25. 查找關係的主鍵
- 26. 關係(外鍵)CakePHP的
- 27. mySQL中的關係(外鍵)
- 28. 生成關係單個鍵
- 29. 外鍵關係問題
- 30. 如何讓關係鍵
什麼是?請給更多的背景 – tlehman 2013-02-28 23:17:21
他意味着關鍵,價值的關係。我有一個待處理的標題編輯爲 – 2013-02-28 23:18:08
您的列表有多大?你怎麼訪問它很多?你可以在vector中使用2 int/float/double的類/結構體。如果你沒有很多點迭代只使用矢量,那麼地圖將更快地查找。哈希映射甚至更快。所以請告訴我們更多的細節 – Gilad 2013-02-28 23:21:31