[英]QVector object construction with iterators
是不可能从像C ++向量这样的迭代器构造一个新的QVector对象?
QVector<double> new_vec(vec_old.begin()+100,vec_old.end())
当我尝试做这样的事情时,我遇到了错误。还有什么是从其他QVector的一部分构造一个新的QVector对象的最佳方法?
作为解决方法,您可以使用fromStdVector
:
auto qv = QVector<double>::fromStdVector(std::vector<double>(
vec_old.begin() + 100, vec_old.end()));
根据Qt文档,这是不可能的。
回答你的第二个问题,从其他QVector
的一部分创建一个QVector
,我相信以下是最好的选择之一:
QVector<double> new_vec(vec_old.size-100);
double* dt = vec_old.constData;
dt += 100; // some pointer arithmetic.
new_vec.fill((*dt), vec_old.size-100);
这只会复制从某个指定位置开始直到结束的数据,就像你写的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.