私はベクトルに列挙型を配置するプロジェクトに取り組んでいます。そのような機能をベクターからどのように得ることができるのだろうと思っていました。イテレータをベクトルに表示
これを行うには5つの方法がありましたが、いずれも機能していないようです。私はMSDNのベクトル(vector :: end()は、オペレータ<がイテレータとしてiiを受け付けないと言われるまで最も役に立つと思われました。
誰かが私を助けますか?
vector<int>::iterator ii;
for(ii = things.begin(); ii != things.end(); ii++){ //764
cout << "thing(" << (int)ii << "): " << toString(things[ii]) << endl; //765
}
だったが、これはどちらかが意味を成していないか、私は解決する方法を見つけ出すことができないというエラーがスローされます
1>c:\...\Project.cpp(764): error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'std::_Vector_iterator<_Myvec>' (or there is no acceptable conversion)
1>c:\...\Project.cpp(765): error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::_Vector_iterator<_Myvec>' (or there is no acceptable conversion)
1>c:\...\Project.cpp(765): error C2679: binary '[' : no operator found which takes a right-hand operand of type 'std::_Vector_iterator<_Myvec>' (or there is no acceptable conversion)
どのようなタイプのあなたがそうのようなベクターにあなたの値を入力することができます
:として – Yaniro
これは 'toString(thing)'を書いたenumです(テストされています)、別のカウンタを試してみます – gardian06
イテレータはインデックスではなく、もっとポインタに似ています 'thing [ii]'は完全に間違っていますので、 '* ii'を使用してください。それは、ポインタのように、エンドユーザにとって有益な情報はありません。行764はOKですが、コンパイラがなぜ不平を言っているのか分かりません。同じエラーを示す10行のプログラムを試してみてください。 –