2

その反復子に変数を割り当てようとすると、次のエラーが表示されexpected a ";"ます。vecthrust::device_vector<my_type>jintmy_type

for (thrust::device_vector<my_type>::iterator i = vec.begin(); i < vec.end(); i += j) Foo(i);

これはベクトルをループする正しい方法ですか? i正しい型として宣言していますか?

4

1 に答える 1

1

標準コンテナは、他のオブジェクト (つまり、その要素) のコレクションをトラバースするためにイテレータを使用します。イテレータはすべての標準コンテナに実装されている抽象的な概念であるため、次の方法でイテレータを実装できます。

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/

于 2013-05-05T01:41:49.930 に答える