我正在爲學校開展一個項目,我正在嘗試創建一個使用大小爲2的數組作爲地圖索引的地圖。我甚至不確定這是否可能,因爲我不知道我可以訪問地圖的元素(因爲我真的不知道我怎麼可以通過值引用整個數組)。基本上我試圖使用地圖索引作爲字符串的協調系統。如果任何人都可以告訴我,如果這是可能的話,如果它的語法是什麼,這將是一個很大的幫助。謝謝! 我正在做這個C++的項目地圖和陣列
地圖和陣列
回答
如果使用Java,你可以使用的一種方法是用一個類包裝你的數組,然後實現hashCode和equals方法。這些方法是一種允許其他對象識別該類的實例的機制。例如,Map類使用hashCode作爲存儲和檢索該對象的關鍵字。
下面是你的包裝類的一個例子。
class Point {
private int[] coordinates;
public Point(int x, int y){
this.coordinates = new int[]{x, y};
}
@Override
public boolean equals(Object o){
// implement equals as stated in the docs.
}
@Override
public int hashCode(){
// implement hashCode as stated in the docs using coordinates[0] and coordinates[1]
}
}
class App {
public static void main(String[] args){
Map<Point, String> map = new HashMap<Point, String>();
map.put(new Point(1,2), "some string");
// etc...
}
}
C#的答案與此類似。你會使用Dictionary
我不得不在C++中做這個項目不幸,我真的沒有在java中做任何編碼。我猜測在C++中,@override基本上是對操作符的功能進行操作。如果你能讓我知道這是否正確,那會很棒。其餘的代碼非常有幫助!謝謝! – user1185736 2012-02-02 18:06:44
好,最簡單的方法是隻串聯值轉換成字符串如果您使用的整數和浮點數只是代表{1.2,4.3}爲一個字符串「1.2,4.3」(假設它的東西簡單)和使你的地圖鍵類型的字符串。
ggreiner的答案是一個很好的Java實現,我已經在他的C#實現中包含了他的評論,但我無法幫助您在C++中生成哈希代碼。但是,如果這是作業,將數組轉換爲字符串將會起作用,並且可能是您的教師期望的。
- 1. Haskell列陣地圖陣列
- 2. 地圖陣列陣列到陣列
- 3. Scala地圖陣列
- 4. 陣列#每個與陣列#地圖
- 5. 紅寶石陣列和地圖方法
- 6. 幫助陣列和谷歌地圖API
- 7. 陣列和地圖輸出乘法
- 8. 行爲的陣列#拒絕和陣列#地圖iterater
- 9. 地圖循環陣列
- 10. JSON谷歌地圖陣列
- 11. 谷歌地圖在陣列
- 12. C++異構地圖陣列
- 13. 地圖陣列條件
- 14. 讀陣列谷歌地圖
- 15. 陣列的打印地圖
- 16. json.Marshal地圖JSON陣列
- 17. 蟒地圖字典陣列
- 18. 地圖陣列反對
- 19. 地圖整數值陣列
- 20. 陣列地址
- 21. 全景和圖像陣列
- 22. fft和陣列到圖像/圖像到陣列轉換
- 23. 列表和地圖
- 24. 生成數據陣列與PARAM地圖
- 25. 使用陣列#地圖方法
- 26. PHP數組地圖到花葯陣列
- 27. 從陣列生成瓷磚地圖
- 28. 閃電++陣列作爲地圖的鍵
- 29. 谷歌地圖v3陣列標記
- 30. 使用javascript地圖擴展陣列
你使用什麼編程語言? – 2012-02-02 17:29:49