1
我通過鍵向後循環與非重複的特別感興趣:我可以把multimap迭代邏輯到另一個函數嗎?
#include <map>
#include <iostream>
std::multimap<int,int> myMap = {
{1,2}, {1,2}, {2,2}, {2,2}, {3,2},
};
int main() {
using namespace std;
cout << "the keys backwards:" << endl;
typedef multimap<int, int> multimap_type;
typedef std::reverse_iterator<multimap_type::iterator> reverse_iterator;
for (auto it = myMap.rbegin(), end = myMap.rend(); it != end; it = reverse_iterator(myMap.lower_bound(it->first)))
{
cout << it->first << endl;
}
}
正如你看到的,我必須三次重複除其他事項外多重映射名稱。我可以編寫自己的函數來處理所有這些,然後簡單地調用while或range for循環嗎?這樣的:
while((auto it = myIterFunc(myMap)) {
//...
}
for (auto it : myIterFunc(myMap)) {
//...
}