📅  最后修改于: 2020-10-16 08:38:21             🧑  作者: Mango
C++ STL algorithm.equal()函数比较两个容器中的元素,如果发现两个容器中的所有元素都匹配,则返回一个真值。第一个范围从[first1,last1)开始,第二个范围从first2开始。
template bool equal(InputIterator1 first1, InputIterator1 last1,InputIterator2 first2);
template bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first1, BinaryPredicate pred);
first1:它是[first1,last1)的第一个元素的输入迭代器。
last1:它是[first1,last1)的最后一个元素的输入迭代器。
first2:它是[first2,last2)的第一个元素的输入迭代器。
pred:它是一个二进制函数,接受两个元素作为参数并执行该函数设计的任务。
如果两个容器中的所有元素都匹配,则该函数返回值true,否则返回false。
#include
#include
#include
using namespace std;
bool newpredicate(int m, int n)
{
return(m==n);
}
int main()
{
int newints[]={20,40,60,80,100};
std::vector newvector(newints, newints+5);
if(std::equal(newvector.begin(),newvector.end(),newints))
std::cout<<"Both the containers have matching elements.\n";
else
std::cout<<"Both the containers have difference elements.\n";
newvector[3]=81;
if(std::equal(newvector.begin(),newvector.end(),newints,newpredicate))
std::cout<<"Both the containers have equal containers.\n";
else
std::cout<<"Both the containers do not have equal elements. \n";
return 0;
}
输出:
Both the containers have matching elements.
Both the containers do not have equal elements.
#include
using namespace std;
int main()
{
int u1[]={10,20,30,40,50};
std::vector vec_1(u1,u1+sizeof(u1)/sizeof(int));
std::cout<<"The vector consists of:";
for(unsigned int k=0; k
输出:
The vector consists of: 10, 20,30,40,50
Both the containers have equal elements.
该函数从first1元素到last1元素具有线性复杂度。
访问两个范围中的对象。
如果任何参数抛出一个异常,该函数将引发异常。