std:地图 iterator移动有关问题
std::map iterator移动问题
问题:it能用++
可以这样用的么?
例如std::map<char,int>::iterator it = mymap.begin() + N
举个例子,我想快速移到第N个.有什么好方法?
------解决方案--------------------
目前是可以,但是++是重载的,保不齐哪个版本就不是+1的了。
------解决方案--------------------
std::map<char,int>::iterator it = mymap.begin();
std::advance(it, N);
int main ()
{
std::map<char,int> mymap;
std::map<char,int>::iterator it;
mymap['b'] = 100;
mymap['a'] = 200;
mymap['c'] = 300;
// show content:
for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it)
std::cout << it->first << " => " << it->second << '\n';
return 0;
}
问题:it能用++
可以这样用的么?
例如std::map<char,int>::iterator it = mymap.begin() + N
举个例子,我想快速移到第N个.有什么好方法?
------解决方案--------------------
目前是可以,但是++是重载的,保不齐哪个版本就不是+1的了。
------解决方案--------------------
std::map<char,int>::iterator it = mymap.begin();
std::advance(it, N);