-2

我正在尝试在 std::vector 中复制 QList 这是我的代码:

std::copy(_param_31.listJobs->list_USCOREjobs.begin(),
          _param_31.listJobs->list_USCOREjobs.end(),
          listJobs.toVector().toStdVector().begin());



_param_31.listJobs->list_USCOREjobs // is a vector
listJobs // is a QList

错误是:

no match for 'operator=' in '* __result = * __first'

非常感谢你。

4

1 回答 1

1

toStdVector()创建一个与 Qt 集合具有相同元素的新向量。分配给这个向量不会对原始集合产生任何影响。toVector()也只是创造了一个临时的。

我没有使用过 Qt,但看起来 Qt 容器的使用与标准容器几乎相同。因此,假设您尝试将 的内容替换为listJobs的内容,_param_31.listJobs->list_USCOREjobs我认为您可以这样做:

listJobs.clear();
std::copy(_param_31.listJobs->list_USCOREjobs.begin(),
          _param_31.listJobs->list_USCOREjobs.end(),
          std::back_inserter(listJobs));
于 2012-03-19T16:04:56.037 回答