【发布时间】:2018-03-12 21:33:30
【问题描述】:
我想在一个类中创建一个 valarray 类型的向量,其中所述向量的每个元素都引用同一类中某个结构类型的向量的一个元素。示意图,我有
struct particle{
valarray<double> x(2); //x has 2 components
};
class SPH{
vector<particle> ps(1000); //ps has 1000 particles
vector<valarray> y(1000);
void RK4_step();
};
void SPH::RK4_step(){
for(int a=0; a<1000; a++)
y[a] = ps[a].x; //HERE
}
是否有可能以某种方式通过引用在 (HERE) 中进行分配?
【问题讨论】:
-
这样做的目的到底是什么?如果
y的所有元素都引用ps的元素,那么您通过这种方式获得了什么? -
有了这个改变,我可以在 y 上使用重载的向量类操作(我已经在我的真实代码中使用了),而我需要重载粒子类操作符来做到这一点ps.
标签: c++ reference variable-assignment