2016-07-22 87 views
1

说我有通过参考以下通:通过引用(指向对象的指针向量)比传递值更快吗?

foo(std::vector<someClass *> const &bar)

比较由值来传递

foo(std::vector<someClass *> bar)

我读,当涉及到基本数据类型,使用传值将被优先考虑,而通过参考传递类或结构等大数据。那么指向对象的指针向量

+0

如果按值传递指针向量,则除了创建内部向量结构的副本外,还将创建指针向量的副本。 – rcgldr

回答

3

这很简单,需要复制的字节数量。

当您通过int时,其大小与其指针大小之间没有太大差异(如果有)。由于该值通常在寄存器中,因此速度稍快。

如果传递更大的结构或数组,则复制内容(用于by-value)比复制它的指针(对于by-ref)要花费更长的时间。

指向对象指针的向量再次可能是多个字节,因此引用速度更快。