equal_range

ソート済みシーケンスにおいて、指定した値と同じ値かそれより小さい (なかで最大の) 値を指し示すイテレータと、 指定した値より大きい次の値を指し示すイテレータのペア(pair)を返します。

equal_range のサンプルコード

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

int main() {
  vector<char> v;

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

  pair<vector<char>::iterator, vector<char>::iterator> p;
  p = equal_range(v.begin(), v.end(), 'M');

  if (p.first != v.end()) {
    cout << "First: " << *p.first << endl;
  }

  if (p.second != v.end()) {
    cout << "Second: " << *p.second << endl;
  }

  return 0;
}

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

./a.out
First: M
Second: N