首先,我用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--)之後遞增它?
'多重映射<對<字符串,字符串>,配對> ::迭代器another_iterator = it'? –
NathanOliver
如果你可以交換兩個輸出的順序,你可以簡單地先打印'it',然後遞增,然後再打印'it' – user463035818