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