我正在阅读this,但现在我对两种传递参数的方式的效率感到困惑。
与传递值相比,本教程告诉我,通过引用传递是快速的“因为没有制作参数的副本”。但是,它还告诉我“取消引用指针(引用)比直接访问它要慢,访问通过引用传递的值比访问值传递的值慢”。
所以这是我的问题:如果通过引用传递比传递值更快或更慢?
谢谢!
答案 0 :(得分:0)
这取决于传递的变量的大小。
如果它在示例char
中,那么制作副本的速度会更快,因为它通常需要1 B,而x32上的引用在x32上可能需要大约4 B,
但是当您传递示例std::string
时,情况正好相反 - AFAIK最大string
的大小仅受系统架构和硬件的限制。