簡體   English   中英

為GHC中的O(1)預分配Data.Vector?

[英]Preallocating Data.Vector for O(1) in GHC?

在C ++世界中,當push_back已知數量的項目導入新向量時,對std::vector了優化- 預分配空間

Haskell未裝箱的載體有類似物嗎? Doc說consO(n)

根據文檔, Data.Vector.(++)為O(m + n),效率比cons n倍。 因此,如果您只是將新元素放入新矢量中,則可以將其有效地附加到舊矢量上。

請注意,在C ++中,只要您有足夠的預分配區域,就可以僅在O(n)中執行此操作。 我猜您在Haskell中獲得的額外O(m)是由於Data.Vector是不可變的,並且需要一個副本。

如果要使用可變向量,請查看Data.Vector.Mutable.grow

暫無
暫無

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

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