メモ lower_bound, upper_bound

数値とかのソートされた配列aに対して

  • lower_bound(a.begin(), a.end(), k) は aの中で ai≧k となる最小のポインタを求める。
  • upper_bound(a.begin(), a.end(), k) は aの中で ai>k となる最小のポインタを求める。

これらを使ってaの中の値がkの要素の数は

upper_bound(a.begin(), a.end(), k) - lower_bound(a.begin(), a.end(), k)

と書けるし、

その要素自体は

*upper_bound(a.begin(), a.end(), k)

で参照できる。

aのソートの向きによる違いは後で調べておく。