我尝试QVector
使用以下方法将一个向量的内容复制到
std::copy(source.begin(), source.end(), dest.begin());
然而目的地QVector
仍然是空的。
有什么建议么 ?
看着:
std::vector<T> QVector::toStdVector () const
QVector<T> QVector::fromStdVector ( const std::vector<T> & vector ) [static]
'fromStdVector' 最近已被明确标记为已弃用。使用以下代码:
std::vector<...> stdVec;
// ...
QVector<...> qVec = QVector<...>(stdVec.begin(), stdVec.end());
如果您要使用 aQVector
的内容创建一个新的,则std::vector
可以使用以下代码作为示例:
std::vector<T> stdVec;
QVector<T> qVec = QVector<T>::fromStdVector(stdVec);
正如提到的其他答案,您应该使用以下方法将 a 转换QVector
为 a std::vector
:
std::vector<T> QVector::toStdVector() const
以及以下将 a 转换std::vector
为 a的静态方法QVector
:
QVector<T> QVector::fromStdVector(const std::vector<T> & vector)
这是一个如何使用的示例QVector::fromStdVector
(取自此处):
std::vector<double> stdvector;
stdvector.push_back(1.2);
stdvector.push_back(0.5);
stdvector.push_back(3.14);
QVector<double> vector = QVector<double>::fromStdVector(stdvector);
不要忘记在第二个之后指定类型QVector
(应该是QVector<double>::fromStdVector(stdvector)
,不是QVector::fromStdVector(stdvector)
)。不这样做会给你一个恼人的编译器错误。