【发布时间】:2017-09-15 15:37:17
【问题描述】:
首先,我使用的是C++98/03
我从第二个元素开始迭代我的多图:
multimap<pair<string, string>, pair<string, int> >::iterator it = paths.begin();
it++;
我有一个条件语句:如果当前迭代器中第一对的第一个元素等于前一个迭代器中第一对的第一个元素,那么做一些事情,例如。打印这些元素。
for(; it != paths.end(); it++) {
if((*it).first.first == (*it--).first.first ) {
it++;
cout << (*it).first.first << " ";
cout << (*it--).first.first << endl;
it++;
}
else {
it++;
}
}
我的问题是如何使用迭代器的副本而不是在每个 (*it--) 之后将其递增?
【问题讨论】:
-
multimap<pair<string, string>, pair<string, int> >::iterator another_iterator = it? -
如果你可以交换两个输出的顺序,你可以简单地先打印
it,然后递增,然后再打印it