Мне передали Iterator, и я должен передать его другой функции - но отфильтровать так, чтобы определенные элементы были пропущены (это диапазон указателей, и я хочу отфильтровать указатели NULL).
Я гуглил " stl filter iterator ", чтобы увидеть, как это сделать, и boost :: filter_iterator подошел.
Это выглядит неплохо, и я мог бы использовать его, но могу ли я сделать это со старым добрым STL? Конечно, не копируя элементы в новый контейнер.
Полагаю, мне нужно было бы создать еще один класс итераторов, обеспечивающий необходимые функции begin()
, end()
и т. Д. И выполняет ли фильтрация? Так что мне бы точно пришлось переопределить boost
iterator_filter
...?