その反復子に変数を割り当てようとすると、次のエラーが表示されexpected a ";"
ます。vec
thrust::device_vector<my_type>
j
int
my_type
for (thrust::device_vector<my_type>::iterator i = vec.begin(); i < vec.end(); i += j) Foo(i);
これはベクトルをループする正しい方法ですか? i
正しい型として宣言していますか?
標準コンテナは、他のオブジェクト (つまり、その要素) のコレクションをトラバースするためにイテレータを使用します。イテレータはすべての標準コンテナに実装されている抽象的な概念であるため、次の方法でイテレータを実装できます。
typename thrust::device_vector<my_type>::iterator it = vec.begin();
for (it; it != vec.end(); it = it+j)
Foo(*it);
STL コンテナへの参照は次のとおりです: http://www.cplusplus.com/reference/stl/