📅  最后修改于: 2023-12-03 14:39:57.436000             🧑  作者: Mango
std::equal()
是C++中的一个STL算法函数,用于判断两个区间是否相等。它的头文件是
template<class InputIt1, class InputIt2>
bool equal(InputIt1 first1, InputIt1 last1, InputIt2 first2);
函数接受两个迭代器first1
和last1
,它们表示用于比较的第一个范围。第三个参数first2
是第二个范围的开始迭代器。
该函数的返回值为布尔值,表示两个范围是否相等。如果两个范围中的元素完全相等,则返回true
,否则返回false
。
以下是std::equal()
函数的示例,它比较两个vector对象是否相等:
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v1 = {1, 2, 3, 4, 5};
std::vector<int> v2 = {1, 2, 3, 4, 6};
bool result = std::equal(v1.begin(), v1.end(), v2.begin());
if (result)
{
std::cout << "v1 == v2" << std::endl;
}
else
{
std::cout << "v1 != v2" << std::endl;
}
return 0;
}
输出将是:
v1 != v2
std::equal()
可以用于所有符合迭代器要求的容器,例如std::list
, std::deque
, std::array
等。std::equal()
是使用迭代器的==操作符进行比较的,因此两个范围的元素必须支持==操作符。std::equal()
是一个很有用的STL算法函数,用于比较两个范围的元素是否相等。它是通用的,可以用于各种STL容器,以及指针、数组等迭代器类型。在使用时,需要注意迭代器类型、要比较的容器是否支持==操作符,以及是否需要自定义比较函数。