簡體   English   中英

索引復雜對象的最快集合類型

[英]Fastest Type of Collection of indexed complex Ocjects

我正在尋找最優雅、最快和最有效的方法來存儲 class Point的多個對象,並在任何類型的集合中使用索引/鍵。

Point包含indexposXposYareaneighborPoints[]AdjacentTriangles[]等屬性,用於創建 Delaunay-Triangulation 和 Voronoi-Mesh。
出於選擇的原因,單點應該在集合中有一個索引,但不需要排序。
在進行三角測量時,我正在創建刪除點。 我還想遍歷集合中的所有點。 因此,應針對這些操作優化集合類型。

一開始我使用List<Point>來存儲點,並且列表中的出現與點的索引相同。 如果刪除列表中的一個點,我必須減少較高點的所有索引。 這對我來說聽起來很不方便且耗時。

這就是我后來嘗試Dictionary<int, Point>的原因。 這里的索引是固定的,如果我刪除例如第二個點,那么所有更高的點,也許Point[5]保持Point[5] ,只是Point[1]不再存在(返回是null )。 然而,我的運行時間現在更長了(見圖),盡管我不再需要進行索引移動了。 (為什么是這樣?) 運行時

使用Hashmap對我來說毫無意義,從那時起我將無法使用Point.posX (錯誤代碼 CS1061)之類的調用,因為在 Hashmap 中未設置數據類型。

您對性能更快的高效集合有什么建議嗎?

您可以沿希爾伯特曲線對點進行排序。 Bowyer-Watson 算法基本上使用希爾伯特曲線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM