【问题标题】:C++ use array pointer vs vector? [duplicate]C ++使用数组指针与向量? [复制]
【发布时间】:2012-07-27 16:29:05
【问题描述】:

可能重复:
Using arrays or std::vectors in C++, what's the performance gap?

我只是想知道它们中的哪一个更快并且使用更少的资源?我认为向量更可靠和安全,但指向数组的指针更快。我想重新调整数组的大小(添加新元素,因此将其增加 1 或从中删除元素)。向量有它的功能,而指针需要我创建的。

我不知道该选哪一个。你有什么建议?谢谢!

【问题讨论】:

  • "I want to re-size the array" - 使用vector...故事结束。
  • 如果你想要一个“可重新调整大小”的数组,总是使用向量。这是解决这个常见问题的最佳实现,不要重做!
  • 就像所有此类问题的情况一样,答案是:先编写干净、简单的代码,然后在你让它工作后,看看它是否足够快。如果不是,请确定代码的哪些部分导致性能问题(通过分析)并提高这些部分的性能。从vector 开始,但设计您的程序时,如果您以后确定需要这样做,您可以轻松地将其替换为任何其他随机访问序列。
  • 经典新手关注。你不知道电脑真的很快吗?正如詹姆斯所说,先做简单的方法,然后如果你有效率问题,以后再优化。但在这种情况下,vector 可能与您编写的任何代码一样快。

标签: c++ arrays pointers vector


【解决方案1】:

根据Bjarne Stroustrup,您应该使用vector over Array,除非您有充分的理由使用数组。

【讨论】:

    【解决方案2】:

    c++ 标准库已优化为尽可能快,同时提供必要的功能,因此您不必实现它们。节省时间和担心,只需使用矢量。

    如果速度上有任何差异,它们在大局中将可以忽略不计:)

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 2015-06-17
      • 2015-08-09
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多