[英]Preallocating Data.Vector for O(1) in GHC?
根据文档, 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.