Unrue
13-05-2006, 12:09
Salve, avendo bisogno di estrarre il minimo dei valori da un vettore, ho pensato di usare un multiset, che di defaut ordina gli elementi in modo crescente. In pratica, ogni elemento lo inserisco cosi':
multiset_fn.insert(f_n);
E poi, tramite un iteratore, prelevo l'elemento minore cosi':
pos=multiset_fn.begin();
minimo=(*pos);
E poi lo tolgo in questo modo:
multiset_fn.erase(pos);
Le mie domande sono: ma è corretto procedere cosi'? So che il multiset ha una struttura ad albero all'interno, quindi l'iteratore, non punta al primo elemento, ma a quello più a sinistra nell'albero, essendo bilanciato. Almeno credo. In più, togliendo l'elemento cosi' come ho fatto, non è che corrompo l'ordinamento? Inoltre non ho ben capito il discorso delle chiavi. Infatti accedo all'elemento direttamente con l'iteratore, non vedo dove si usano le chiavi. Grazie :)
multiset_fn.insert(f_n);
E poi, tramite un iteratore, prelevo l'elemento minore cosi':
pos=multiset_fn.begin();
minimo=(*pos);
E poi lo tolgo in questo modo:
multiset_fn.erase(pos);
Le mie domande sono: ma è corretto procedere cosi'? So che il multiset ha una struttura ad albero all'interno, quindi l'iteratore, non punta al primo elemento, ma a quello più a sinistra nell'albero, essendo bilanciato. Almeno credo. In più, togliendo l'elemento cosi' come ho fatto, non è che corrompo l'ordinamento? Inoltre non ho ben capito il discorso delle chiavi. Infatti accedo all'elemento direttamente con l'iteratore, non vedo dove si usano le chiavi. Grazie :)