Ottimizzare C++/Tecniche generali di ottimizzazione/Altre tecniche: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: en:Optimizing C++/General optimization techniques/Other techniques |
Riportate modifiche da en.wikibooks |
||
Riga 1:
{{Ottimizzare C++}}
=== Query con cursore ===
Line 22 ⟶ 16:
Ecco una tecnica equivalente ma più efficiente.
La funzione di interrogazione rende un iteratore.
Nel mondo dei database, tale iteratore si chiama ''cursore'' o ''dynaset''.
Il chiamante usa tale iteratore per estrarre, uno alla volta i dati filtrati, ed eventualmente per modificare tali dati.
Nota che questa soluzione non è del tutto equivalente, in quanto se durante l'uso dell'iteratore la collezione viene modificata da un'altra chiamata di funzione, eventualmente proveniente da un altro thread, può succedere che l'iteratore sia invalidato, o anche solo che l'insieme filtrato non corrisponda ai criteri impostati.
Line 47 ⟶ 42:
=== Lista a collegamento singolo ===
'''Se per una lista
Tale contenitore, pur avendo molte limitazioni, occupa meno memoria ed è più veloce.
Infatti, tipicamente, l'intestazione di una lista a
Inoltre, tipicamente, ogni nodo di una lista a
Infine, ogni inserimento di un elemento in una lista a
Nella libreria standard del C++, il contenitore <code>std::list</code> è implementato da una
Il contenitore <code>slist</code>, non standard ma disponibile in varie librerie, e il contenitore <code>forward_list</code>, che farà parte della libreria standard C++0x, sono implementati da una lista a
[[Categoria:Ottimizzare C++|Altre tecniche]]
|