![](/img/trans.png)
[英]How to convert from std::vector<float> to std::istream?
[英]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.