コードのコメント行を確認してください。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int>numbers{1,2,3,4,5,6,7,8};
vector<int>::iterator it, beg=numbers.begin(), end=numbers.end();
for(it=beg; it!=end; it++){
cout<<*it++<<endl; //THIS LINE PRINTS 1 3 5 7
}
return 0;
}
イテレータについて読んで、いくつかのことを試しています。その行は要素がit
参照するものを出力し、次にインクリメントするようit
です。実際、次のように同じ結果が生成されます。
cout<<*it<<endl;
it++;
私はそれを明確に説明しませんでした。本当の問題は、そのようなイテレータで 2 つの操作を実行できるかということです。
そして、なぜ*(it+1)
は と異なるのです*(it++)
か?
ありがとう。