私はIteratorを渡したので、別の関数に渡す必要がありますが、フィルタリングして特定の要素をスキップするようにしました(ポインタの範囲です。NULLポインタをフィルタリングしたい)。boost :: filter_iterator - STLでどうすればいいですか?
私は "stlフィルターイテレーター"でこれを行う方法を知りましたが、boost::filter_iteratorが出ました。
これはうまく見えますが、私はそれを使うことができましたが、良い古いSTLでもそうすることができますか?もちろん、新しいコンテナに要素をコピーすることなく。
私は、必要なbegin()
、end()
などの機能を提供し、フィルタリングを行う別のイテレータクラスを作成しなければならないと思いますか?だから私は正確に再実装する必要がありますboost
iterator_filter
...?
私はやや反対です。ブーストはインストールするのが煩雑で、時にはその余分な依存関係を望まないこともあります。実際のところ、 'filter_iterator'を書き直さない理由は、実際に正しく書くのは非常に難しい(そして非常に扱いにくい)ということです。 –