std::map<int,int> aa;
for (int i = 1; i < 10; i+=2)
{
aa[i] = i;
}
int key = 1;
std::map<int,int>::iterator it1 = aa.lower_bound(key);
std::map<int,int>::iterator it2 = it1;
if (it1 == aa.end() && it1 != aa.begin())
{
it1--;
}
if (it2 != aa.end())
{
it2++;
}
int find = 0;
while (find < 10)
{
if (it1 != aa.end())
{
if (it1 != aa.begin())
{
printf("%d\n", it1->first);
find++;
it1--;
}
else
{
printf("%d\n", it1->first);
find++;
it1 = aa.end();
}
}
if (it2 != aa.end())
{
printf("%d\n", it2->first);
it2++;
find++;
}
if (it1 == aa.end() && it2 == aa.end())
{
break;
}
}
for (int i = 1; i < 10; i+=2)
{
aa[i] = i;
}
int key = 1;
std::map<int,int>::iterator it1 = aa.lower_bound(key);
std::map<int,int>::iterator it2 = it1;
if (it1 == aa.end() && it1 != aa.begin())
{
it1--;
}
if (it2 != aa.end())
{
it2++;
}
int find = 0;
while (find < 10)
{
if (it1 != aa.end())
{
if (it1 != aa.begin())
{
printf("%d\n", it1->first);
find++;
it1--;
}
else
{
printf("%d\n", it1->first);
find++;
it1 = aa.end();
}
}
if (it2 != aa.end())
{
printf("%d\n", it2->first);
it2++;
find++;
}
if (it1 == aa.end() && it2 == aa.end())
{
break;
}
}