2014-02-08 15 views

回答

3

Data.Vector.(++)根据文档是O(m + n),这比文档更有效n次。所以如果你只是把新的元素放在一个新的矢量中,你可以有效地将它附加到旧的元素中。

请注意,在C++中,如果您有足够的预分配区域,则可以仅在O(n)中执行此操作。我猜,你在Haskell中获得的额外的O(m)是由于Data.Vector是不可变的,并且需要一个副本。

如果您想要使用可变向量,请参阅 Data.Vector.Mutable.grow