どこで間違ったのかわかりません。私が理解しているように、このコードは「1、2、3」を返すはずですが、次のようになります。ベクトルとそのイテレータをグローバルに宣言する必要があります。これは、実際のコードでベクトルを関数に渡し、一部の関数でイテレータも更新する必要があるためです。どんな助けでも大歓迎です!
#include <iostream>
#include <vector>
using namespace std;
vector<float> grid;
vector<float>::iterator gridPtr;
int main()
{
grid.push_back(1);
grid.push_back(2);
gridPtr = grid.begin();
grid.push_back(3);
cout << "gridPtr: " << *gridPtr << endl;
gridPtr++;
cout << "gridPtr: " << *gridPtr << endl;
gridPtr++;
cout << "gridPtr: " << *gridPtr << endl;
}
これは以下を返します:
gridPtr: 2.62257e-33
gridPtr: 2
gridPtr: 0