高性能程序,什么是更好的矢量数组或矢量矢量

时间:2018-01-13 19:46:05

标签: c++ arrays performance vector

我正在编写必须是高性能程序的内容。

我现在拥有的是#34; A"类型的向量数组。我发明了。 " A"是一个长long和double的结构。

vector<A>* ord = new vector<A>[X];

其中X是在执行时间之前我不知道的值。

我要做的是,对于每个向量,通过long long变量对其对象进行排序,然后执行一些操作。

我的问题是,它在性能方面比我现在更好``一系列矢量&#39;或者更好地创建这样的矢量矢量:

vector<vector<A>> ord;

两个人认为:

  • 请注意,我不必在矢量之间进行操作。
  • 我在其他帖子中读过,使用“new&#39;”这是一个坏主意。操作员,在这种情况下,我在我的程序中使用的内容。

2 个答案:

答案 0 :(得分:2)

动态分配的向量数组和向量向量在优化的代码中可能是相同的。向量向量处理了很多问题,除非你有一些非常不寻常的问题,否则你应该更喜欢这个解决方案。

过早的优化是万恶之源 - 托尼·霍尔爵士

答案 1 :(得分:0)

你提到&#34; X是一个我不知道的值,直到执行时间&#34;,这是否意味着它的静态?

如果你需要它是动态使用向量,但如果X没有改变使用数组,因为它会为你节省一点内存(如果X是静态的,两者都将以几乎相同的速度运行)。 / p>

关于何时使用新内容的问题,我将按照这篇文章推荐: When to use "new" and when not to, in C++?