<分区>
我正在阅读 this但现在我对两种传递参数的方式的效率感到困惑。
与按值传递相比,本教程告诉我按引用传递速度很快“因为没有创建参数的拷贝”。但是,它还告诉我“取消引用指针(引用)比直接访问它慢,访问通过引用传递的值比访问通过值传递的值慢”。
所以我的问题是:按引用传递比按值传递更快还是更慢?
谢谢!
<分区>
我正在阅读 this但现在我对两种传递参数的方式的效率感到困惑。
与按值传递相比,本教程告诉我按引用传递速度很快“因为没有创建参数的拷贝”。但是,它还告诉我“取消引用指针(引用)比直接访问它慢,访问通过引用传递的值比访问通过值传递的值慢”。
所以我的问题是:按引用传递比按值传递更快还是更慢?
谢谢!
最佳答案
这取决于传递的变量的大小。
如果它在示例 char
中,那么制作拷贝会更快,因为它通常需要 1 B,而 x32 上的引用在 x32 上可能需要大约 4 B,
但是当您在示例中传递 std::string
时,情况恰恰相反 - 据我所知,最大 string
的大小仅受系统架构和硬件的限制。
关于c++ - 引用传递 VS 值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823100/