通过方法分配变量,返回变量或指向变量时哪个更快?
案例1 :
功能声明
void foo(int* number)
{
*number = 5;
}
用法
int main()
{
int number;
function(&number);
cout << "Number: " << number;
}
案例2 :
功能声明
int foo()
{
int number = 5;
return number;
}
用法
int main()
{
int number;
number = function();
cout << "Number: " << number;
}
PS:在案例2中,我创建了一个变量并立即返回。我知道这没有意义,但这是我能找到的最接近我正在处理的情况的例子,因为我正在初始化一个实际的对象,这需要先创建对象,编辑它,然后返回它< / em>的
答案 0 :(得分:2)
这取决于复制变量的成本。对于基本类型,返回一个值。 对于更复杂的类型,请考虑传入引用,或者查看C ++ 11移动语义。
答案 1 :(得分:1)
使用输出参数(案例1)的一个好处是它使您能够使函数“返回”多个值:
void foo (int* x, int* y)
{
*x = 5;
*y = 4;
}
但是就像所有人在评论中所说的那样,这在C ++和C一样重要。 通常,返回更具可读性,并且可以很好地定义程序的逻辑 容易遵循。在C ++中,坚持返回或引用。
答案 2 :(得分:0)
通常,您应该根据自己的需求选择使用哪种功能,而不是选择性能。
你有多个输出? - &GT;使用指针
输入是输出 - &gt;不妨使用指针
这两种情况更难以返回变量。 除此之外,在性能方面,当变量超级复杂时使用变量是很好的,这样,你只需要传入一个指针而不是那个超级复杂的对象。但除此之外,任何性能提升都可以忽略不计。