Dal quinto capitolo di Designing Components with the C++ STL, di Ulrich Breymann. Algoritmi standard.
Sezione dedicata operazioni insiemistiche su strutture ordinate.
5.6: Condizioni e limitazioni
Gli algoritmi di questa sezione hanno il limite che l'iteratore di output deve fare riferimento a un container che ha abbastanza spazio allocato per ricevere il risultato. In alternativa é possibile usare un iteratore di inserimento, ma in questo caso il container deve essere vuoto.
Nel primo caso, il rischio é che il container in output non sia dimensionato correttamente, e dunque occorre non considerare gli elementi in coda al container stesso, o addirittura, nel caso lo spazio sia insufficiente, si avrà un crash.
Usando un iteratore di inserimento il rischio é quello di operare su un container non vuoto, che avrà quindi elementi spuri al termine dell'operazione.
Nessun commento:
Posta un commento