我尝试使用以下方法将一个向量的内容复制到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]
MyQvector.fromStdVector(MyStedVector);
仍然导致 qvector 为空。 - Rajeshwar'fromStdVector'最近已经被明确标记为deprecated(已废弃)。 请使用以下代码:
std::vector<...> stdVec;
// ...
QVector<...> qVec = QVector<...>(stdVec.begin(), stdVec.end());
如果你想用 std::vector
的内容创建一个新的 QVector
,你可以参考以下代码:
std::vector<T> stdVec;
QVector<T> qVec = QVector<T>::fromStdVector(stdVec);
QVector
转换为 std::vector
:std::vector<T> QVector::toStdVector() const
std::vector
转换为 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)
)。如果不这样做,会产生烦人的编译器错误。
QVector::fromStdVector
。 - Praetorian