将std :: vector复制到qvector

Raj*_*war 9 c++ qt

我尝试QVector使用以下内容将一个向量的内容复制到a

std::copy(source.begin(),source.end(),dest.begin());
Run Code Online (Sandbox Code Playgroud)

但是目的地QVector仍然是空的.

有什么建议 ?

tro*_*mpa 19

看着:

std::vector<T> QVector::toStdVector () const

QVector<T> QVector::fromStdVector ( const std::vector<T> & vector ) [static]
Run Code Online (Sandbox Code Playgroud)

来自docs

  • @Rajeshwar:因为它是静态方法,请尝试:MyQvector = QVector :: fromStdVector(MyStedVector); (2认同)

小智 10

“fromStdVector”最近已被明确标记为已弃用。使用以下代码:

std::vector<...> stdVec;

// ...       

QVector<...> qVec = QVector<...>(stdVec.begin(), stdVec.end());
Run Code Online (Sandbox Code Playgroud)

  • 我真的不明白为什么 QT 团队弃用了这个功能。它似乎很有用,而且更容易在我的脑海中写下来...... (3认同)

dun*_*123 5

如果您要使用QVectora 的内容创建一个新的std::vector,您可以使用以下代码作为示例:

   std::vector<T> stdVec;
   QVector<T> qVec = QVector<T>::fromStdVector(stdVec);
Run Code Online (Sandbox Code Playgroud)