我收到一個數組作爲函數的指針,並希望從中初始化一個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