¿Cuál es la mejor manera de contar todos los elementos en un iterador?¿Cuántos elementos hay entre dos iteradores?
Quiero código equivalente a este
template<typename T,typename S,S val>
struct ConstantFunctor : unary_function<T,S>
{S operator()(const T&) const {return val;}};
template<typename T>
struct TrueFunctor : ConstantFunctor<T,bool,true>{};
...
count_if(c.begin(),c.end(),TrueFunctor());
Cuál es la mejor manera de hacerlo?
Puedo usar boost::lambda::constant(true)
, pero tal vez haya algo más claro.
¿Por qué no usas 'std :: distance'? – Vinzenz
@Vinzenz Eso es lo que estaba buscando ... Thaks –
Para mí * contar todos los elementos entre dos iteradores * suena como obtener los valores de los elementos y resumirlos, que es 'acumular'. Si lo que quiere saber es * cuántos elementos hay en el rango * Creo que sería beneficioso si cambiara el título de la pregunta. –