假设我有一个结构:
struct Foo {
float A;
float B;
float C;
};
我有一个结构的向量:
std::vector<Foo> vFoo;
还有一个函数,它接受浮点数组(或与 Foo 成员相同的类型):
float foo_floats(const float a[], const float b[], const float c[]);
我的问题是,有没有办法使用 vFoo 作为 foo_floats 的参数?换句话说,是否可以在不创建额外向量的情况下从 vFoo 中提取 Foo 中的 A、B 和 C 的数组?
我想去掉下面的三个新向量(x、y 和 z),因为这显然是浪费内存:
std::vector<float> x, y, z;
for (int i=0; i<vFoo.size(); ++i) {
x.push_back(vFoo[i].A);
y.push_back(vFoo[i].B);
z.push_back(vFoo[i].C);
}
const float f = foo_floats(&x[0], &y[0], &z[0]);