C++のチュートリアルの次のコードが見つかりました。あなたは*v
が使用されていることがわかりますなぜこのコードにポインターを使うべきですか?
cout << "value of v = " << *v << endl;
:で 。私たちは、の代わりにv
を使用してはならない理由を教えてください。
#include "StdAfx.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
// create a vector to store int
vector<int> vec;
int i;
// access 5 values from the vector
for(i = 0; i < 5; i++){
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}
// use iterator to access the values
vector<int>::iterator v = vec.begin();
while(v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
cin.get();
cin.get();
return 0;
}
イテレータまたはそれが指しているものを印刷しますか? – immibis
単に 'v'が' iterator'であるため、逆参照して値を取得する必要があります – DimChtz
私はそのサンプルが気に入らないのです。プリインクリメントまたはC++ 11範囲ベースのループを使用すると、より良い結果が得られます。 –