1.两层vector的迭代器使用
当外层迭代器指向iter.begin();需要访问内层循环时,首先对其进行解应用(运算符重载);然后再求其begin();访问内层元素,直接对迭代器解引用。迭代器就像一串地址一样,使用迭代器,首先找到开始的地址,然后通过地址增减,迭代访问元素。访问内存vector,首先要获取内层的元素,通过begin()获得地址。
//vector当数组使用
vector<vector<int> > array(3);vector<int> atom;
for(int i=0; i<3; i++)
{
array[i].resize(3);
}
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
array[i][j]=i*j;
}
}
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout <<array[i][j]<<" ";
}
cout <<endl;
}
//迭代器的使用
cout <<array[0].size()<<endl;vector<vector<int> >::iterator iter=array.begin();
while(iter!=array.end())
{
vector<int>::iterator iter_=(*iter).begin();
while(iter_!=(*iter).end())
{
cout <<*iter_<<" ";
iter_++;
}
cout <<endl;
iter++;
}