我傳遞了一個Iterator,我必須將它傳遞給另一個函數 - 但是要過濾掉,以便某些元素被跳過(這是一個指針範圍,我想過濾掉NULL指針)。boost :: filter_iterator - 我將如何與STL做到這一點?
我搜索了「stl過濾器迭代器」以查看如何做到這一點,並且boost::filter_iterator出現了。
這看起來不錯,我可以使用它,但我可以做到這一點與舊的STL好嗎?當然,不要將這些元素複製到一個新的容器中。
我想我會創建另一個迭代器類,提供必要的begin()
,end()
等功能,並進行過濾?所以我完全必須重新實現boost
iterator_filter
...?
我有點不同意:升壓可能會很麻煩,有時你不希望有額外的依賴。我認爲不會重寫`filter_iterator`的* real *原因在於它實際上很難(並且非常麻煩)正確地寫入。 – 2011-08-07 20:12:43