繁体   English   中英

使用C ++向量而不是C数组的性能损失

[英]Performance penalty for using C++ vector instead of C array

使用C ++中的标准库中的向量而不是C中的数组会有性能损失吗?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM