upper_bound と lower_bound を使ってみる (C++)
C++
Published: 2019-09-30

やったこと

下記メソッドを使ってみます。

  • upper_bound
  • lower_bound

確認環境

$ g++ --version
g++ (Homebrew GCC 9.2.0) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

調査

upper_bound

指定された要素より大きい値が現れる最初の位置のイテレータを取得する

lower_bound

指定された要素以上の値が現れる最初の位置のイテレータを取得する。

lower_upper.cpp

#include <bits/stdc++.h>
using namespace std;

int A[10] = {1, 3, 3, 5, 7};

int main() {

    printf("%d\n", *upper_bound(A, A + 5, 3));
    printf("%d\n", *lower_bound(A, A + 5, 3));

    printf("%d\n", upper_bound(A, A + 5, 3));
    printf("%d\n", lower_bound(A, A + 5, 3));

    printf("%d\n", upper_bound(A, A + 5, 3) - lower_bound(A, A + 5, 3));
}

出力結果

5
3
117379276
117379268
2

参考