2012-02-23 14 views
5

Nel New Iterator Concepts standard proposal, non sono in grado di decifrare alcuna differenza utile tra un iteratore a passaggio singolo e un iteratore di avanzamento in avanti.Qual è la differenza tra un Iterator Boost Single Pass e un Iterator Forward Traversal?

L'"Asserzione/Nota" per la riga "++ r" nella tabella Forward Traversal implica che gli Iterators di attraversamento in avanti sono copiabili, mentre gli Iteratori a passaggio singolo non lo sono?

Inoltre, perché la capacità aggiuntiva di costruire di default crea un modello iteratore Forward Traversal? Qual è la logica?

+0

Non sicuro se duplicato, ma sembra vicino, * molto * vicino: [Qual è la differenza tra gli iteratori di input e gli iteratori di sola lettura?] (Http://stackoverflow.com/q/8869104/500104) – Xeo

+0

Grazie per il collegamento, @Xeo. Per motivi di chiarezza, gradirei una esplicita affermazione che la tua risposta a tale domanda si applica anche ai nuovi concetti di iteratore, poiché la traduzione dal vecchio al nuovo non è strettamente individuale. Puoi confermare che si applica? – FactualHarmony

risposta

4

L'idea di Single Pass Iterator è che ha in meno di requisiti di un iteratore di inoltro trasversale. Ciò rende possibile crearne uno per alcuni casi in cui non è possibile eseguire il multi-pass.

Ingresso console di Think. Anche se si potesse fare una copia dell'iteratore, ciò non aiuterebbe a recuperare il vecchio input da tastiera.

+0

Ho ragione nel capire che "multipass" significa in effetti "dereferenziare più di una volta senza incrementare"? – FactualHarmony

+0

No, passa più significa attraversare la sequenza più di una volta. –

Problemi correlati