bool equal( InputIt1 first1, InputIt1 last1, InputIt2 first2);
first1, last1-the first range of the elements to compare
first2-the beginning element of the second range to compare
注解:
它将第一个序列中的每个元素与第二个序列中的对应元素进行比较。如果所有对应元素都相等,则返回true,否则返回false。
由于equal利用迭代器完成操作,因此可以通过equal比较两个不同类型容器中的元素。而且,元素的类型也不必一样,只要我们能用==来比较两个元素类型即可。
equal基于一个非常重要的假设:它假设第二个序列至少与第一个序列一样长。
详情参考:http://en.cppreference.com/w/cpp/algorithm/equal
样例代码:
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> vi1,vi2;
for(int i=0;i<10;i++)
{
vi1.push_back(i);
vi2.push_back(i);
}
if(equal(vi1.begin(),vi1.end(),vi2.begin()))
cout<<"vi1 equal vi2\n";
else
cout<<"vi1 not equal vi2\n";
if(equal(vi1.begin()+5,vi1.end(),vi2.begin()))
cout<<"vi1 equal vi2\n";
else
cout<<"vi1 not equal vi2\n";
return 0;
}
测试:
vi1 equal vi2
vi1 not equal vi2
#include <algorithm>
#include <vector>
#include <list>
#include <iostream>
using namespace std;
int main()
{
vector<int> vi1;
list<int> li1;
for(int i=0;i<10;i++)
{
vi1.push_back(i);
li1.push_back(i);
}
if(equal(vi1.begin(),vi1.end(),li1.begin()))
cout<<"vi1 equal 1i1\n";
else
cout<<"vi1 not equal li1\n";
return 0;
}
测试:
vi1 equal 1i1