2012-03-19 5 views
-2

私がのstd ::ベクトルでQListにコピーしようとしている、これは私のコードです:中には一致しない '演算子=' '* __result = * __first'

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' 

ありがとうございました。

+1

本当に?それは__full__エラーですか?あなたの質問は何ですか? – orlp

+1

どのオブジェクトにコピーしようとしていますか?正確なタイプ(テンプレートパラメータを含む)は何ですか?投稿したコードは、複数のレベルで意味をなさないようです(たとえば、一時的なベクターにコピーされているようです)。 – interjay

+1

なぜあなたはそれが働くことを期待していますか?手作業で要素をコピーするだけです.3行のループが必要です。この質問を書いたほうが時間が短いでしょう。 –

答えて

1

toStdVector()は、Qtコレクションと同じ要素を持つ新しいベクトルを作成します。このベクターに割り当てることは元のコレクションには影響しません。 toVector()は一時的なものでもあります。

私はQtを使用していませんが、Qtコンテナは標準コンテナとほぼ同じように使用できます。だから、あなたは私はあなたがこのようにそれを行うことができると思い_param_31.listJobs->list_USCOREjobsの内容でlistJobsの内容を置き換えるためにしようとしていると仮定すると:

listJobs.clear(); 
std::copy(_param_31.listJobs->list_USCOREjobs.begin(), 
      _param_31.listJobs->list_USCOREjobs.end(), 
      std::back_inserter(listJobs)); 
+0

大変ありがとうございました。 – Jjreina

関連する問題