将std::vector复制到qvector
copying a std::vector to a qvector
我尝试使用以下将一个矢量的内容复制到QVector
std::copy(source.begin(), source.end(), dest.begin());
然而,目的地CCD_ 2仍然是空的。
有什么建议吗?
查看:
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());
如果使用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)
)。不这样做会给您带来一个恼人的编译器错误。
相关文章:
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将 Qvector<uint8_t> 转换为 QString
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 使用strcpy将char数组的元素复制到另一个数组
- 是否可以初始化不可复制类型的成员变量(或基类)
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 复制列表初始化的隐式转换的等级是多少
- 当从函数参数中的临时值调用复制构造函数时
- 有可能在Armadillo中复制MATLAB circshift方法吗
- 复制几乎为空的数组的最快方法
- 以下示例中如何避免代码复制?C++/库达
- 如果有一个模板构造函数只有一个泛型参数,为什么我必须有一个复制构造函数
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 不能将复制初始化与隐式转换的多个步骤一起使用
- 了解 QVector append() - 为什么它会有条件地复制
- 在Qt信号中发射QVector参考会导致复制
- 将std::vector复制到qvector
- QVector::append() 显式复制的原因是什么
- 将QVector从一个信号传递到不同线程中的插槽会导致数据复制吗?