我尝试使用以下
将一个向量的内容复制到QVector
std::copy(source.begin(),source.end(),dest.begin());
但目的地QVector
仍为空。
有什么建议吗?
答案 0 :(得分:18)
看看:
std::vector<T> QVector::toStdVector () const
QVector<T> QVector::fromStdVector ( const std::vector<T> & vector ) [static]
答案 1 :(得分:4)
如果您要创建一个包含QVector
内容的新std::vector
,则可以使用以下代码作为示例:
std::vector<T> stdVec;
QVector<T> qVec = QVector<T>::fromStdVector(stdVec);
答案 2 :(得分:3)
'fromStdVector'最近已明确标记为已弃用。 使用以下代码:
MyData
答案 3 :(得分:0)
正如提到的其他答案,您应该使用以下方法将QVector
转换为std::vector
:
std::vector<T> QVector::toStdVector() const
以下静态方法将std::vector
转换为QVector
:
QVector<T> QVector::fromStdVector(const std::vector<T> & vector)
以下是如何使用QVector::fromStdVector
(摘自here)的示例:
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)
)。不这样做会给你一个烦人的编译器错误。