#include <iostream>
#include <map>
#include <set>
using namespace std;
struct ZZ{};
int main() {
map<ZZ, std::set<ZZ>> mapa;
std::map<ZZ, std::set<ZZ>>::iterator it_map;
std::set<ZZ>::iterator it_set1, it_set2;
for(it_map = mapa.begin(); it_map != mapa.end(); ++it_map){
for(it_set1 = it_map->second.begin(); it_set1 != it_map->second.end(); ++it_set1){
for(it_set2 = ++it_set1; it_set2 != it_map->second.end(); ++it_set2){
/*
some function which use *it_set1, *it_set2
*/
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFpae307CgppbnQgbWFpbigpIHsKCQoJCgltYXA8WlosIHN0ZDo6c2V0PFpaPj4gbWFwYTsgIAoJc3RkOjptYXA8WlosIHN0ZDo6c2V0PFpaPj46Oml0ZXJhdG9yIGl0X21hcDsgIAoJc3RkOjpzZXQ8Wlo+OjppdGVyYXRvciBpdF9zZXQxLCBpdF9zZXQyOyAgICAKCglmb3IoaXRfbWFwID0gbWFwYS5iZWdpbigpOyBpdF9tYXAgIT0gbWFwYS5lbmQoKTsgKytpdF9tYXApeyAgICAgCgkgICAgZm9yKGl0X3NldDEgPSBpdF9tYXAtPnNlY29uZC5iZWdpbigpOyBpdF9zZXQxICE9IGl0X21hcC0+c2Vjb25kLmVuZCgpOyArK2l0X3NldDEpewoJICAgICAgICBmb3IoaXRfc2V0MiA9ICsraXRfc2V0MTsgaXRfc2V0MiAhPSBpdF9tYXAtPnNlY29uZC5lbmQoKTsgKytpdF9zZXQyKXsKCSAgICAgICAgLyoKCSAgICAgICAgc29tZSBmdW5jdGlvbiB3aGljaCB1c2UgKml0X3NldDEsICppdF9zZXQyCgkgICAgICAgICovCgkgICAgICAgIH0KCSAgICB9Cgl9CgkKCXJldHVybiAwOwp9