给定一张 map ,我需要检索和操作两个立即存储的项目。 对我来说,处理 vector 更容易,因为我可以执行“iter + 1”或“iter - 1”。 对于 map ,我运气不好。
比如我举个简单的例子如下: 注意:在我的实际应用中,我不会简单地减去这些数字。
int main ()
{
map<char,int> mymap;
map<char,int>::iterator it;
mymap['b'] = 100;
mymap['a'] = 200;
mymap['c'] = 300;
// show content:
map<char,int>::iterator firstItem = mymap.begin();
map<char,int>::iterator secondItem = ++mymap.begin();
for ( ; secondItem != mymap.end(); ++firstItem, ++secondItem )
cout << secondItem->second - firstItem->second << endl;
return 0;
}
问题>是否有更好的解决方案?
谢谢
最佳答案
不是在循环控制中递增两个迭代器(递增有点慢),只需分配 firstItem = secondItem
然后递增 secondItem
。
关于c++ - 迭代 std::map 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803424/