vector 的iterator 迭代器是一个指针
vector.begin() 是指向第一个元素的指针
*iter 就是相应的元素
注意 vector.erase(这里面必须是一个iterator)
比如:
// erase the 6th element
myvector.erase (myvector.begin()+5);
// erase the first 3 elements:
myvector.erase (myvector.begin(),myvector.begin()+3);
erase之后,返回下一个iterator
vector<int> mylist = {0,1,2,3,4};
vector<int>::iterator iter = mylist.begin();
int a = *iter; //iter-> mylist[0] 0
++iter;
int b = *iter; //iter-> mylist[1] 1
iter++;
int c= *iter; //iter-> mylist[2] 2
iter = mylist.erase(iter); // erase(2) mylist={0,1,3,4} iter->mylist[2] 3
int d = *iter; // d=3
opencv中的Mat也可以用iterator,不同的是iter还有一个属性pos
Mat mask;
mask.create(100, 100, CV_8UC1);
mask = Scalar::all(255);
Mat_<uchar>::iterator iter = mask.begin<uchar>();
iter++;
iter++;
iter++;
cout << (int)(*iter) << endl; // 255
cout << iter.pos() << endl; //[3,0]