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)) {
//...
}