stl map 如何反序迭代!
map<int,int>::iterator stl_MapIterator = Stl_Map->end();
我想从尾部开始倒序迭代,我这样尝试后发现值出问题了,是为什么?
[解决办法]
#include<iostream>
#include<map>
using namespace std;
int main()
{
int j=0;
map<int,int>map_v;
for(int i=0;i<10;i++)
map_v.insert(make_pair(i,j++) );
map<int ,int>::reverse_iterator r_iter=map_v.rbegin();
while(r_iter!=map_v.rend())
{
cout<<r_iter->first<<" "<<r_iter->second<<" "<<endl;
r_iter++;
}
return 0;
}
用反向迭代器,
如果用你那种方法是这样
#include<iostream>
#include<map>
using namespace std;
int main()
{
int j=0;
map<int,int>map_v;
for(int i=0;i<10;i++)
map_v.insert(make_pair(i,j++) );
map<int ,int>::iterator iter=map_v.end();
while(iter!=map_v.begin())
{
cout<<iter->first<<" "<<iter->second<<" "<<endl;
iter--;
}
return 0;
}
不过第一个值出错了
[解决办法]
map<int,int> yourMap;
// add some key-value contents
for (map<int,int>::reverse_iterator it=yourMap.rbegin(); it!=yourMap.rend(); it++)
{
// do something with element which was indicated by iterator it
}