我有线

double A =uJoinFeatures1.Values [i];


这将创建一个double值的副本

struct udtJoinFeatures
{
    double Values[17];
};


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

我试过了

double A =&uJoinFeatures1.Values [i];


但这是不可能的。

最佳答案

您声明A作为对double的引用:

double& A = ...;


但是,在这种情况下,速度实际上并不会增加。在64位计算机上,double和指针(实际上是引用)都是64位,复制量相同。并且由于引用实际上只是指针的另一个名称,因此在访问引用时您将具有间接引用,这可能比仅使用double添加更多指令。

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

关于c++ - C++引用值,而不是复制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18979476/

10-12 00:01
查看更多