2

在 C++ 中使用标准库中的向量而不是 C 中的数组是否会降低性能?

4

2 回答 2

7

不,没有(假设您通过优化编译,因此可以发生内联),前提是您的意思是使用 malloc 获得的动态大小的 C“数组”。

C 中固定大小的数组有一点优势,即它们的地址在链接后是固定的(如果是全局的),或者它们直接存在于堆栈上,而不是通过指向堆上某处的指针间接存在。我相信仍然没有性能差异;常量基地址并不比可变基地址快;两者都被加载到 CPU 寄存器中。

于 2009-09-19T02:36:28.707 回答
1

唯一真正的区别是使用 std::vector 的访问会通过一些简单的函数。只要您使用适当的优化级别以使这些函数调用被内联,它们将是相同的。

于 2009-09-23T15:24:01.423 回答