Глава 18. Классы-контейнеры_____________________________477
найдена пара неравных элементов или найдены элементы, для которых функция binary_pred(firstl+i, first2+i) возвращает false, тогда в объекте pair возвращаются итераторы, указывающие на эти два элемента. Класс pair — это механизм библиотеки STL, позволяющий возвращать в функцию два объекта возможно различных типов. Определение класса-шаблона pair:
template <class Inputlteratorl, class Inputlterator2> pair<lnputlteratorl, Inputlterator2> mismatch(Inputlteratorl firsti, Inputlteratorl. lasti, Inputlterator2 first2);
template <class Inputlteratorl, class Inputlterator2,
class BinaryPredicate>
pair<lnputlteratorl, Inputlterator2> mismatch(Inputlteratorl firsti, . Inputlteratorl lasti, 'Inputlterator2 first2, BinaryPredicate
binary_pred);
*
template <class Tl, class T2>
struct pair
(
Tl first;
T2 second;
pair(const T1& a, const T2& b) : first(a), second(b) {} 1;
Пример Использования mismatch И pair:
pair<char*, char> result = mismatch(strl,strl+10, str2);
if (result.first == strl+10)
cout « "Несовпадение найдено: " « "*result.first !== *result.second.\n";
else
cout « "Первые девять символов в двух строках равны.\п";
Если несовпадение не найдено, возвращается итератор pair (lasti, first2+(lastl-firstl)).
equal. Алгоритм equal проверяет две входные последовательности на равенство. Равенство определяется операцией == или истинностью функции binary_pred. Алгоритм противоположен mismath за исключением того, что возвращается переменная типа bool". Если не найдено ни одного расхождения, возвращается истина, в противном случае — ложь.
template <class Inputlteratorl, class Inputlterator2> bool equal (Inputlteratorl firsti, Inputlteratorl lasti, Inputlterator2 first2);
template <class Inputlteratorl, class Inputlterator2, class BinaryPredicate>