我收到一个数组作为函数的指针,并希望从中初始化一个QVector。从数组初始化QVector
现在,我不喜欢这样写道:
void foo(double* receivedArray, size_t size)
{
QVector<double> vec(size);
std::copy(receivedArray, receivedArray + size, std::begin(vec));
}
难道也同样可以做到这一点:
void foo(double* receivedArray, size_t size)
{
QVector<double> vec(size);
vec.data() = receivedArray;
}
这会打破某种Qt的机制,我不知道的?
不是一个答案,但是如果'foo'会收到一个std :: double而不是一个指针和大小的向量,例如它会更容易和更傻。 'void foo(const std :: vector&receivedArray){...}'。在这种情况下,你需要的只是'QVector :: fromStdVector'。 –
Elijan9
同意,但这不取决于我。这实际上是QVector的重点。我必须接受float * with size_t,因为这是来自另一个API,并且想要在我的程序中使用mor高级类型。 – FreddyKay