Ciao a tutti..conoscete un modo per poter scorrere una mappa con un iteratore fino al penultimo elemento. Il codice da me utilizzato è il seguente, ma si ferma sull'ultimo elemento:
Grazieeeecodice:for(it= mappa1.begin(); it!=mappa1.end(); it++){}
Ciao a tutti..conoscete un modo per poter scorrere una mappa con un iteratore fino al penultimo elemento. Il codice da me utilizzato è il seguente, ma si ferma sull'ultimo elemento:
Grazieeeecodice:for(it= mappa1.begin(); it!=mappa1.end(); it++){}
{sbagliato}
[CODE]
map<arg1,arg2>::iterator ed = mappa.end();
advance(ed,-1);
for(it= mappa1.begin(); it!=ed; ++it){}
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Ho provato con il seguente codice:
ma mi apre la finestra di debug contenente il seguente errore:codice:map<wstring,vector<wstring>>::iterator ed= mappa1.end(); advance(ed,-1); for(it= mappa1.begin(); it!=ed; ++it){}
Expression:map/set iterator not decrementable ????
![]()
prova con
for(it= mappa1.begin(); it!=mappa1.end()-1; it++){}
per i vector funziona, probabilmente anche per i map.
Non funziona..ma ho risolto utilizzando l'istruzione break...![]()
Strano. Il map::iterator è di tipo bidirezionale. Non è che la mappa sia const?Originariamente inviato da tina8
Ho provato con il seguente codice:
ma mi apre la finestra di debug contenente il seguente errore:
Expression:map/set iterator not decrementable ????
Prova così.
codice:map<wstring,vector<wstring>>::iterator ed= mappa1.begin(); advance(ed,mappa1.size()-1); for(it= mappa1.begin(); it!=ed; ++it){}
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Grazie ha funzionato, adesso avrei bisogno di visitare la mappa dall'ultimo elemento al primo, ho provato con :
ma non funziona, hai qualche suggerimento da darmi??? Graziecodice:for(it= mappa1.end(); it!=mappa1.begin(); --it)
codice:for(map<wstring,vector<wstring> >::reverse_iterator it=mappa1.rbegin(); it!=mappa1.rend(); ++it)
Amaro C++, il gusto pieno dell'undefined behavior.