繁体   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