计算迭代器中所有元素的最佳方法是什么?两个迭代器之间有多少个元素
我想代码等同于这个
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());
什么是做到这一点的最好方法是什么?
我可以使用boost::lambda::constant(true)
,但也许有一些清晰。
你为什么不使用'的std :: distance'? – Vinzenz
@Vinzenz这就是我正在寻找... Thaks –
对我来说*计算两个迭代器之间的所有元素*听起来像获取元素的值并将它们总结起来,即“accumulate”。如果你想知道的是*范围内有多少元素*我认为如果你改变问题标题会有好处。 –