2012-07-11 36 views
0

在我的程序中,iam使用CArray來存儲一些值。但使用CArray成員函數時性能較差。如迭代CArray。 iam使用成員函數如Copy,GetAt,Append等,因爲性能低下,iam決定使用CMap類而不是CArray。我的決定是否正確?任何人解釋它?CArray和CMap的運行速度

+0

在這一刻你不應該使用MFC容器,而是STL容器......除非你正在維護一箇舊的代碼庫,或者你有另一個強有力的理由來使用前者。 – sergiol 2016-06-24 16:47:33

回答

2

看一看這樣的:Recommendations for Choosing a Collection Class

我們必須選擇不僅是基於對性能的集合類。這取決於你想要的數據結構的種類,你想要執行的操作等等。

既然你說過要「存儲一些值」,我認爲沒有更多的複雜性。爲此,您可以使用CArrayCList。當插入 a值時列表更快,但它是未編入索引。即您無法訪問特定索引處的元素,您需要改爲遍歷該列表。

CMap比都CArrayCList更快,但它是更好,如果你有複雜的數據結構的集合,其中一個唯一的密鑰是提供給指數的每個元素來使用它。