0
在C++世界存在用于std::vector
优化时push_back
“荷兰国际集团的产品已知量的新的载体 - preallocate space为GHC中的O(1)预分配Data.Vector?
是否有模拟Haskell的装箱矢量? Doc说cons
是O(n)
。
在C++世界存在用于std::vector
优化时push_back
“荷兰国际集团的产品已知量的新的载体 - preallocate space为GHC中的O(1)预分配Data.Vector?
是否有模拟Haskell的装箱矢量? Doc说cons
是O(n)
。
Data.Vector.(++)
根据文档是O(m + n),这比文档更有效n次。所以如果你只是把新的元素放在一个新的矢量中,你可以有效地将它附加到旧的元素中。
请注意,在C++中,如果您有足够的预分配区域,则可以仅在O(n)中执行此操作。我猜,你在Haskell中获得的额外的O(m)是由于Data.Vector是不可变的,并且需要一个副本。
如果您想要使用可变向量,请参阅 Data.Vector.Mutable.grow
。