#include <map>
#include <utility>
#include <iostream>
int main () {
std::map<long , int* > v;
int i,a[10];
for(i=0; i<10; i++)
{
a[i] = i+1;
v.insert(std::pair<long, int *>(i+1,&a[i]));
}
std::map<long, int*>::iterator itr = v.begin();
while(itr != v.end())
{
std::cout << itr->first << " "<<itr->second;
std::cout << "\n";
itr++;
}
std::map<long, int*, std::greater<long> > rv(v.begin(), v.end());
std::cout << "copied array: "<<"\n";
std::map<long, int*, std::greater<long> >::iterator itr2 = rv.begin();
while(itr2 != rv.end())
{
std::cout << itr2->first << " "<<itr2->second;
std::cout << "\n";
itr2++;
}
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCgppbnQgbWFpbiAoKSB7CiAgc3RkOjptYXA8bG9uZyAsIGludCogPiB2OwoKICBpbnQgaSxhWzEwXTsKICBmb3IoaT0wOyBpPDEwOyBpKyspCiAgewogICAgYVtpXSA9IGkrMTsKICAgIHYuaW5zZXJ0KHN0ZDo6cGFpcjxsb25nLCBpbnQgKj4oaSsxLCZhW2ldKSk7CiAgfQoKICBzdGQ6Om1hcDxsb25nLCBpbnQqPjo6aXRlcmF0b3IgaXRyID0gdi5iZWdpbigpOwogIHdoaWxlKGl0ciAhPSB2LmVuZCgpKQogIHsKICAgc3RkOjpjb3V0IDw8IGl0ci0+Zmlyc3QgPDwgIiAiPDxpdHItPnNlY29uZDsKICAgc3RkOjpjb3V0IDw8ICJcbiI7CiAgIGl0cisrOwogIH0KICBzdGQ6Om1hcDxsb25nLCBpbnQqLCBzdGQ6OmdyZWF0ZXI8bG9uZz4gPiBydih2LmJlZ2luKCksIHYuZW5kKCkpOwoKICBzdGQ6OmNvdXQgPDwgImNvcGllZCBhcnJheTogIjw8IlxuIjsKICBzdGQ6Om1hcDxsb25nLCBpbnQqLCBzdGQ6OmdyZWF0ZXI8bG9uZz4gPjo6aXRlcmF0b3IgaXRyMiA9IHJ2LmJlZ2luKCk7CiAgd2hpbGUoaXRyMiAhPSBydi5lbmQoKSkKICB7CiAgICBzdGQ6OmNvdXQgPDwgaXRyMi0+Zmlyc3QgPDwgIiAiPDxpdHIyLT5zZWNvbmQ7CiAgICBzdGQ6OmNvdXQgPDwgIlxuIjsKICAgIGl0cjIrKzsKIH0KfQ==