通过引用传递(指向对象的指针向量)比通过值传递快
Is pass by reference (a vector of pointers to object) faster than pass by value?
假设我有以下pass-by-reference:
foo(std::vector<someClass *> const &bar)
与传递值进行比较
foo(std::vector<someClass *> bar)
我读到,当涉及到基元数据类型时,使用按值传递会更可取,而对于类或结构等大型数据,使用按引用传递指针向量呢?
需要复制的字节数很简单。
当您传递int
时,它的大小和指针的大小之间没有太大差异(如果有的话)。因为该值通常已经在寄存器中,所以速度会稍快一些。
如果传递更大的结构或数组,则复制内容(按值)比复制其指针(按引用)花费更长的时间。
指向对象的指针的向量可能是许多字节,因此引用更快。
相关文章:
- 为什么可以将左值传递给"std::async",即使它引用了右值
- 当值传递给C++中的运算符重载函数时会发生什么
- 通过glUniform 将 GLM 的向量类型传递给 OpenGL
- 如何将非可变参数值传递给 fmt::format?
- 将 qml 项目值传递给 cpp 后如何与它们进行交互?
- NDK:将文本字段值传递给 c++ 字符串
- 将向量元素传递给 c++ 中的函数
- 如何将值传递给 lambda 函数
- 如何在C++中将std::string值传递给RegSetValueEx()
- 如何将 c ++ 变量的值传递给 hadoop HDFS 的 bash 系统命令?
- C++ 通过参数将值传递给 char 数组
- 如何将值传递给MFC消息映射函数on_command
- 使用JNI将长值传递给Java
- 如何在不使用 Argv 和 Argc 的情况下将 Sum 值传递给 C++ 程序
- C++ 将值传递给 fStream
- 如何将函数中的多个值传递给C++中的不同函数
- 将多个解析值传递给 addPositionalArgument 函数
- C++为什么将左值传递给move构造函数对模板有效
- 一种自动检测对象的方法,该方法通过值传递给c++中的函数
- 将值传递给main(int,char**)