Me pasan un iterador y tengo que pasarlo a otra función, pero filtrado para que se omitan ciertos elementos (es un rango de punteros, y quiero filtrar los punteros NULL).boost :: filter_iterator - ¿cómo podría hacer eso con el STL?
Busqué en la red para "stl filter iterator" para ver cómo hacerlo, y apareció boost::filter_iterator.
Eso se ve bien y podría usarlo, pero ¿podría hacerlo con el viejo STL también? Sin copiar los elementos en un nuevo contenedor, por supuesto.
Supongo que tendré que crear otra clase de iterador que proporcione las funciones necesarias begin()
, end()
etc. ¿Y el filtro? Entonces, ¿tendré exactamente que volver a implementar el boost
iterator_filter
...?
Estoy un poco en desacuerdo: el impulso puede ser engorroso de instalar y, a veces, no desea esa dependencia adicional. Creo que la razón * real * por la que uno no volvería a escribir 'filter_iterator' es que, de hecho, es bastante difícil (y muy engorroso) escribir correctamente. –