繁体   English   中英

从std :: vector转换 <std::vector<float> &gt;浮动**

[英]Convert from std::vector<std::vector<float>> to float**

有一个函数带有float**参数。 我在std::vector<std::vector<float>>类型的变量中具有值。

是否可以进行这种转换而无需分配临时float*[]

不是直接的,但是您不必复制“内部”向量中的数据。 相反,您可以创建一个指向每个内部向量的data()属性的指针数组。

这将起作用:

std::vector<std::vector<float>> source;

std::vector<float*> target(source.size());
for (int i = 0; i < source.size(); ++i)
  target[i] = &*source[i].begin();

如您所见,您不需要复制内部的std::vector<>而是需要重新创建外部的。 std::vector<>保证其成员的线性存储(这意味着它与C数组兼容),因此适用于内部向量。

您必须通过两个循环将vector<vector<float> >的值填充到float**来手动进行转换。

在任何情况下,您都必须分配内部float*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM