如何将给定std::vector<float>
传递给函数以匹配参数类型float (*parameter)[3]
?
该函数用3d点的坐标填充参数,这就是参数类型为3元素长数组的数组的原因。该功能由a library提供,我无法更改。
我已经初始化了矢量以覆盖足够的元素。
答案 0 :(得分:4)
void f(float (*parameter)[3])
{
}
int main()
{
vector<float> v(3);
f(reinterpret_cast<float(*)[3]>(&v[0]));
}
答案 1 :(得分:2)
由于无法确定某个配置中std::allocator<T>
float[3]
是否涉及std::vector<T>
,因此无法指定给定float[3]
的数组。这不是找到正确的演员表,也不是正确的演员表。
问题在于,您所描述的函数之类的东西只能传递给指向实际float[3]
或空指针的指针。
你可以做的唯一严格一致的事情就是将数据复制到一个真正的{{1}}变量中,并将指针传递给你的函数。