関数からポインタを配列として受け取り、それから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のメカニズムのいくつかの種類を破るだろうか?今、私はこのようにそれを行うために
あなたはvec.data()
に割り当てることができませんので
答えはありませんが、 'foo'がポインタとサイズの代わりにdoublesのstd :: vectorを受け取ると、より簡単で簡単になります。 'void foo(const std :: vector&receivedArray){...}'。その場合、必要なのは 'QVector :: fromStdVector'だけです。 –
Elijan9
合意しましたが、これは私の責任ではありません。それが実際にQVectorのポイントです。私はsize_tを使ってfloat *を受け取って生きなければなりません。これは別のAPIから来ていて、そうでなければ自分のプログラムでmorの高度な型を使いたいからです。 – FreddyKay