私はのためのループでそれを使用する必要がありますするにはどうすればよいイテレータまたはアクセス演算子でベクトルを反復すべきですか?
std::vector<int> MyVector;
MyVector.push_back(5);
MyVector.push_back(6);
MyVector.push_back(7);
としてベクトルを宣言していますか?
イテレータでiteratingすることで?
for (std::vector<int>::iterator it=MyVector.begin(); it!=MyVector.end(); ++it)
{
std::cout << "Vector element (*it): " << *it << std::endl;
}
またはそのアクセスイテレータによって、
for (std::vector<int>::size_type i=0; i<MyVector.size(); i++)
{
std::cout << "Vector element (i) : " << MyVector.at(i) << std::endl;
}
インターネットで見つかった例では、両方が使用されています。すべての条件の下でそれらの1つは他のものより優れていますか?そうでない場合は、どちらの方が優先されるべきですか?
決定に名*「イテレータ」*助けになりませんか?ところで、 'std :: vector :: at'が何をするのか、あなたのコードでなぜそれを使うのかをはっきりと理解していただければと思います。 'std :: vector :: operator []'の代わりに 'std :: vector :: at'を使用すると、イテレータはおそらく常に高速になります(他の利点は無視してください)。 –