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.