イテレータのすべての要素を数える最も良い方法は何ですか?2つのイテレータの間にいくつの要素がありますか
私はこの
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それは私が探していたものです。タックス –
私には2つのイテレータ間のすべての要素を数えます*要素の値を取得し、それらを合計して 'accumulate'のように聞こえます。あなたが知りたいことが*範囲内にいくつあるのか*あなたが質問のタイトルを変更した場合、それが有益だろうと思う。 –