我有一個很大的記錄映射,我需要以不同于鍵的順序訪問映射的子集(有點像資料庫的索引)。假設地圖上有很多人,并且有一個所有學生(大子集)的串列。其中一個欄位是以英寸為單位的高度,另一個以磅為單位的重量。給定一個學生,我想找到下一個最短的和下一個最重的。我目前有迷你地圖根據不同的欄位將鍵映射到下一個和上一個鍵。我正在努力想更好的東西。
map<string, bigRecord> mainMap; 矢量學生;
主地圖:
- "Eric", 73, 174, 學生
- "Greg", 71, 176, 學生
- “保羅”, 70, 173, 不是學生
- "Pete", 72, 175, 學生
學生:“埃里克”、“格雷格”、“皮特”
map<string, twoStringRecordPrevNext>
學生身高圖:
- “埃里克”,上一個=“皮特”,下一個=“”
- “格雷格”,上一個=“”,下一個=“皮特”
- “皮特”,上一個=“格雷格”,下一個=“埃里克”
學生體重地圖:
- “埃里克”,上一個=“”,下一個=“皮特”
- “格雷格”,上一個=“皮特”,下一個=“”
- "皮特", 上一個="埃里克", 下一個="格雷格"
一旦設定了 mainMap(更新無效串列),我就創建了學生迷你地圖,然后可以很容易地找到下一個/上一個給定一個鍵。只是需要維護很多地圖。
使用 SQL 資料庫效果不佳,因為 mainMap 中有數千個集合(即學生是本示例中的集合)和數百萬條記錄。
關于更好方法的任何想法?
uj5u.com熱心網友回復:
休息一下并回到它之后,我認為“上一個/下一個”事情是不好的部分。我只需要一個 studentHeightVector 來搭配小地圖。現在,給定“Greg”,我知道這是向量中的第一項,可以通過遞增找到下一個最高的元素,第二個元素是“Pete”,我可以在 mainMap 中查找它。
學生身高圖:
- “埃里克”,3
- “格雷格”,1
- “皮特”,2
學生高度向量:
- “格雷格”
- “皮特”
- “埃里克”
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322862.html
上一篇:如何使用Python根據匹配的鍵值在字典串列中附加其他資料
下一篇:用php遍歷mysql表的兩列
