C++ 对值的引用,而不是复制

tmi*_*hty 0 c++ reference

我有线

double A =uJoinFeatures1.Values [i];
Run Code Online (Sandbox Code Playgroud)

这将创建双精度值的副本

struct udtJoinFeatures
{
    double Values[17];
};
Run Code Online (Sandbox Code Playgroud)

但出于速度原因,我只想引用该值而不复制它。请问我该怎么做?

我试过

double A =&uJoinFeatures1.Values [i];
Run Code Online (Sandbox Code Playgroud)

但这是不可能的。

Som*_*ude 5

您声明A为对 a 的引用double

double& A = ...;
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,速度确实不会有任何提高。在 64 位机器上,adouble和指针(实际上是引用)都是 64 位,复制量相同。而且因为引用实际上只是指针的另一个名称,所以当您访问引用时,您可以使用间接方式,这可能会仅使用double.

无论如何,它并不是可测量的,除非您在紧密循环中对数百万个项目执行此操作。