【发布时间】:2016-08-12 13:06:40
【问题描述】:
我从一个函数接收一个数组作为指针,并希望从中初始化一个 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::vector 而不是指针和大小,例如void foo(const std::vector<double>& receivedArray) { ... }。在这种情况下,您只需要QVector::fromStdVector。 -
同意,但这不取决于我。这实际上是 QVector 的重点。我必须接受带有 size_t 的 float*,因为它来自另一个 API,并且希望在我的程序中使用更高级的类型。