Ciao,
ti ringrazio per la risposta, ma la mia era una domanda più generica. L'esempio era solo per far capire la differenza tra ++i e i++ all'interno del for. Forse mi sono spiegato male, intendevo in generale se possono esserci problemi con cicli for differenti nell'incremento, strutturati come quelli dell'esempio.
Perché mi è capitato in programmi più complessi che il comportamento fosse diverso (ad esempio quando scorro con degli iteratori), e volevo che qualcuno mi illustrasse brevemente il perché.
Mi scuso se sono poco chiaro ma non riesco a spiegarmi meglio. Comunque posto per completezza il codice che mi da differenze di comportamento se cambio l'incremento.
codice:
InitProcesses::iterator it_cond;
InitProcesses::iterator it_ret = m_init_processes.begin();
bool cond_break = true;
for (it_cond = m_init_processes.begin(); it_cond != m_init_processes.end() && cond_break; it_cond++)
{
if (processId == it_cond->second.processId)
{
cond_break = false; // Force for break
}
else
{
it_ret++;
}
}
return it_ret;
Quello postato è il corpo di una funzione che ritorna un iteratore e fa solo quello che vedete. Perché se uso ++it_cond mi da dei problemi in esecuzione? Ovvero il tutto non funziona più come dovrebbe.
Grazie in anticipo a chi avrà la pazienza di rispondermi.