我有线
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)
但这是不可能的。
您声明A为对 a 的引用double:
double& A = ...;
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,速度确实不会有任何提高。在 64 位机器上,adouble和指针(实际上是引用)都是 64 位,复制量相同。而且因为引用实际上只是指针的另一个名称,所以当您访问引用时,您可以使用间接方式,这可能会比仅使用double.
无论如何,它并不是可测量的,除非您在紧密循环中对数百万个项目执行此操作。