计算迭代器中所有元素的最佳方法是什么?
我希望代码与此相当
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());
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我可以使用boost::lambda::constant(true),但也许有更清楚的东西.
Naw*_*waz 25
如果要计算范围内的所有元素.然后你可以std::distance从<iterator>标题中使用,如下所示:
int count = std::distance(begin(c), end(c));
Run Code Online (Sandbox Code Playgroud)
这应该够了.
该在线文档说,有关std::distance:
计算第一个和最后一个之间的元素数.
| 归档时间: |
|
| 查看次数: |
11902 次 |
| 最近记录: |