C/C++ 入門

ホーム > STL の使い方 > equal_range

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
ホーム > STL の使い方 > equal_range