find_first_of

シーケンスから特定の値をもつ要素を見つける。マッチする部分要素のうち、最初のシーケンスの先頭を返します。

最後のシーケンスを返すのは find_end でしたね。

この関数はソートされていないシーケンスでも有効に機能します。

find_first_of のサンプルコード

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

int main() {
  vector<char> v1, v2;
  vector<char>::iterator i;

  for (int k = 0; k < 3; k++) {
    for (int j = 0; j < 12; j++) {
      v1.push_back('A' + j);
    }
  }

  for (i = v1.begin(); i != v1.end(); ++i) {
    cout << *i;
  }
  cout << endl;

  v2.push_back('H');
  v2.push_back('I');
  v2.push_back('J');

  i = find_first_of(v1.begin(), v1.end(), v2.begin(), v2.end());

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

  return 0;
}

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

./a.out
ABCDEFGHIJKLABCDEFGHIJKLABCDEFGHIJKL
HIJKLABCDEFGHIJKLABCDEFGHIJKL