我从一个函数中接收到一个指向数组的指针,并希望从中初始化一个 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<double>而不是指针和大小,例如void foo(const std::vector<double>& receivedArray) { ... }
,那么它会更容易和更可靠。在这种情况下,你只需要使用QVector::fromStdVector
即可。 - Elijan9