c++ - 引用传递 VS 值传递

标签 c++ performance function parameters

<分区>

我正在阅读 this但现在我对两种传递参数的方式的效率感到困惑。

与按值传递相比,本教程告诉我按引用传递速度很快“因为没有创建参数的拷贝”。但是,它还告诉我“取消引用指针(引用)比直接访问它慢,访问通过引用传递的值比访问通过值传递的值慢”。

所以我的问题是:按引用传递比按值传递更快还是更慢?

谢谢!

最佳答案

这取决于传递的变量的大小。

如果它在示例 char 中,那么制作拷贝会更快,因为它通常需要 1 B,而 x32 上的引用在 x32 上可能需要大约 4 B,
但是当您在示例中传递 std::string 时,情况恰恰相反 - 据我所知,最大 string 的大小仅受系统架构和硬件的限制。

关于c++ - 引用传递 VS 值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25823100/

相关文章:

c++ - 使用 cppunit 时出错

c++ - 如何检查在我的程序运行的控制台上设置了什么字符编码?

java - 代码优化以避免分支

mysql - 简单的 MySQL 选择花费太多时间

actionscript-3 - AS3 : How to force parameters in callback functions

c++ - std::hash 用于 std::chrono::duration

performance - MySQL 查询多对多关系 : unions?

c++ - 删除一个/多个元素后 vector 数组是否会调整大小?

c - 如何在此函数中返回2个结果

c++ - 从其对象中获取结构字段的名称和类型