std::vector<>
之间的分配、释放和访问时间有什么大的不同吗?和 new[]
什么时候两者都是固定的且长度相同?
最佳答案
取决于类型和您如何调用它。 std::vector<int> v(1000000);
必须将一百万个整数归零,而 new int[1000000];
没有,所以我希望速度有所不同。这是std::vector
中的一个地方如果出于某种原因您不关心元素的初始值,您可能会为不使用的东西付出高昂的代价。
如果比较std::vector<int> v(1000000);
与 new int[1000000]();
那么我怀疑你会看到很大的不同。重要的问题是它们中的一个是否以某种方式具有比另一个更优化的设置零的循环。如果是这样,那么另一个的实现就错过了一个技巧(或者更具体地说,优化器错过了一个技巧)。
关于c++ std::vector<> vs new[] 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972931/