mismatch

二つのシーケンスで要素が異なる箇所の先頭を返します。

戻り値は、比較対象となり相違点が検出された箇所を示す双方のシーケンスに対するイテレータの pair です。

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

mismatch のサンプルコード

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

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

  v1.push_back('A');
  v1.push_back('B');
  v1.push_back('C');
  v1.push_back('D');
  v1.push_back('E');

  v2.push_back('A');
  v2.push_back('B');
  v2.push_back('x');
  v2.push_back('D');
  v2.push_back('E');

  pair<vector<char>::iterator, vector<char>::iterator> i;
  i = mismatch(v1.begin(), v1.end(), v2.begin());

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

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

  return 0;
}

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

./a.out
CDE
xDE