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