[英]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.