繁体   English   中英

带迭代器的QVector对象构造

[英]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 ,我相信以下是最好的选择之一:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM