c++ std::vector<> vs new[] 性能

标签 c++ new-operator stdvector

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/

相关文章:

java - 在新行中打印,java

c++ - reserve() 内存多维 std::vector (C++)

c++ - 为什么 vector::erase 不能在带有 const 的类元素上工作

c++ - 如何创建一个对象创建函数,该函数将由与其关联的名称调用?

c++ - 定义不区分大小写的映射模板

c++ - : char* param= new char[200]; 可能有什么问题

c++ - unique_ptr vector 的迭代器的访问成员

c++ - 区别: std::make_unique<char>(size_t size) 和 std::make_unique<char[]>(size_t size)?

c++ - 手动跟踪递归函数

c++ - 如何在二维数组中分配动态内存?