Функция equal
Функция equal сравнивает два диапазона
элементов и возвращает true, если все
элементы первого диапазона совпадают с
соответствующими элементами второго диапазона,
и false в противном случае. В первый
параметр мы передаём итератор начала первого
диапазона, во второй - итератор конца первого
диапазона, а в третий - итератор начала второго
диапазона. Дополнительно можно передать
предикат для сравнения элементов.
Синтаксис
equal(first1, last1, first2, [pred])
Пример
Давайте сравним два вектора с одинаковыми элементами:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1 = {1, 2, 3, 4, 5};
vector<int> v2 = {1, 2, 3, 4, 5};
bool res = equal(v1.begin(), v1.end(), v2.begin());
cout << res << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте сравним два вектора с разными элементами:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1 = {1, 2, 3, 4, 5};
vector<int> v2 = {1, 2, 3, 4, 6};
bool res = equal(v1.begin(), v1.end(), v2.begin());
cout << res << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте сравним две строки с помощью пользовательского предиката, который игнорирует регистр символов:
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
using namespace std;
int main()
{
string s1 = "abcde";
string s2 = "ABCDE";
bool res = equal(
s1.begin(), s1.end(), s2.begin(),
[](char a, char b) {
return tolower(a) == tolower(b);
}
);
cout << res << endl;
return 0;
}
Результат выполнения кода:
1
Смотрите также
-
функция
mismatch,
которая находит первое несовпадение двух диапазонов -
функция
search,
которая ищет подпоследовательность в диапазоне -
функция
find,
которая ищет элемент в диапазоне -
функция
lexicographical_compare,
которая сравнивает два диапазона лексикографически