Zrobiłem program i funkcję, która zamienia klucz z argumentem, gdy argument jest większy.
(mapa[i][2]=3 zamiast mapa[i][3]=2)
najpierw ustawiam nowy:
Poziom[i][iter1->second]=iter1->first;
potem usuwam stary:
Poziom[i].erase(iter1->first);
typedef map<int, map< int, int> > TMAP;
TMAP Poziom, Pion;
map < int,int >::iterator iter1,iter2;
for(iter1 = Poziom[i].begin(); iter1!=Poziom[i].end(); iter1++)
{
cout<<i<<"czytam:"<<iter1->first<<" "<<iter1->second<<endl;
if (iter1->first > iter1->second)
{
Poziom[i][iter1->second]=iter1->first;
Poziom[i].erase(iter1->first);
}
}
Jednak zamienia około 95% - to pewnie przez to , że map w miedzy czasie sortuje dane, i niektore klucze są omijane... jak to można poprawić?