double sum = accumulate( vec.begin(), vec.end(), 0.0, plus< double >() );
こんな感じ。結構面倒くさい。 plus<> 等は functional にある。
vecが昇順に整列済みなら、
*find_if( vec.begin(), vec.end(), bind2nd( greater< double >(), x) );
でxより大きい最初の値を得ることが出来る。
plus
minus
multiplies
divides
modulus
negate
equal_to
not_equal_to
less
less_equal
greater
greater_equal
logical_and
logical_or
logical_not
等など。
0 件のコメント:
コメントを投稿