两个迭代器之间有多少个元素
计算迭代器中所有元素的最佳方法是什么?
我想要与此等效的代码
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) ,但也许有更清楚的东西。
What's the best way to count all elements in an iterator?
I want code equivalent to this
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());
What's the best way to do that?
I can use boost::lambda::constant(true)
, but maybe there's something clearer.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你想计算一个范围内的所有元素。那么你可以使用
std::distance
,来自
标头,如下所示:就足够了。
在线文档介绍了
std::distance
:If you want to count all elements in a range. then you can use
std::distance
, from the<iterator>
header, like so:It should be enough.
The online doc says about
std::distance
: