Ho passato un Iterator e devo passarlo a un'altra funzione, ma filtrato in modo tale che alcuni elementi vengano saltati (è un intervallo di puntatori e voglio filtrare i puntatori NULL).boost :: filter_iterator - come lo farei con l'STL?
Ho cercato su google "stl filter iterator" per vedere come procedere e boost::filter_iterator è stato visualizzato.
Sembra bello e potrei usarlo, ma potrei farlo anche con il buon vecchio STL? Senza copiare gli elementi in un nuovo contenitore, ovviamente.
Immagino che dovrei creare un'altra classe di iteratore che fornisca le necessarie funzioni begin()
, end()
ecc. E il filtro? Quindi dovrei esattamente reimplementare lo boost
iterator_filter
...?
Non sono affatto d'accordo: boost può essere scomodo da installare e talvolta non si desidera una dipendenza extra. Penso che la * vera * ragione per cui non si dovrebbe riscrivere 'filter_iterator' è che è piuttosto difficile (e molto complicato) scrivere correttamente. –