Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用迭代器构造QVector对象 是否可以从像C++向量??< /p>之类的迭代器构造一个新的qVoT对象? QVector<double> new_vec(vec_old.begin()+100,vec_old.end()) QVector new\u vec(vec\u old.begin()+100,vec\u old.end())_C++_Qt - Fatal编程技术网

用迭代器构造QVector对象 是否可以从像C++向量??< /p>之类的迭代器构造一个新的qVoT对象? QVector<double> new_vec(vec_old.begin()+100,vec_old.end()) QVector new\u vec(vec\u old.begin()+100,vec\u old.end())

用迭代器构造QVector对象 是否可以从像C++向量??< /p>之类的迭代器构造一个新的qVoT对象? QVector<double> new_vec(vec_old.begin()+100,vec_old.end()) QVector new\u vec(vec\u old.begin()+100,vec\u old.end()),c++,qt,C++,Qt,当我尝试这样做时,会出现错误。另外,从其他QVector的一部分构造新QVector对象的最佳方法是什么???根据Qt文档,这是不可能的 回答第二个问题,要从其他QVector的一部分创建QVector,我认为以下是最佳选择之一: QVector<double> new_vec(vec_old.size-100); double* dt = vec_old.constData; dt += 100; // some pointer arithmetic. new_vec.fill(

当我尝试这样做时,会出现错误。另外,从其他QVector的一部分构造新QVector对象的最佳方法是什么???

根据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);
QVector新矢量(旧矢量尺寸-100);
double*dt=vec_old.constData;
dt+=100;//一些指针算法。
新矢量填充((*dt),矢量旧尺寸-100);

这将只复制从某个指定位置开始直到结束的数据,就像您写的那样。

作为解决方法,您可以使用stdvector的

auto qv = QVector<double>::fromStdVector(std::vector<double>(
                         vec_old.begin() + 100, vec_old.end()));
auto-qv=QVector::fromtvector(std::vector(
vec_old.begin()+100,vec_old.end());