upper_bound

ソート済みシーケンスにおいて指定された範囲に、指定した値を上限とする場合の次の場所を指し示すフォワードイテレータを返します。

例えば、ある既知の最大値があってそれ以上の値をソート済みシーケンスに挿入する場合に使えます。

upper_bound のサンプルコード

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
  vector<char> v;
  vector<char>::iterator i;

  for (int j = 0; j < 26; ++j) {
    v.push_back('A' + j);
  }

  i = upper_bound(v.begin(), v.end(), 'M');

  while (i != v.end()) {
    cout << *i;
    ++i;
  }
  cout << endl;

  return 0;
}

実行結果は次の通りです。

./a.out
NOPQRSTUVWXYZ