我有线
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/