C++ 算法 equal()函数

C++ 算法 equal()函数

C++算法函数 equal()用于比较两个容器中的元素,如果两个容器中的所有元素都匹配,则返回true。第一个范围是[first1,last1),第二个范围从first2开始。

语法

template<class InputIterator1, class InputIterator2> bool equal(InputIterator1 first1, InputIterator1 last1,InputIterator2 first2);
template<class InputIterator1, class InputIterator2, class BinaryPredicate> bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first1, BinaryPredicate pred);

参数

first1 :它是指向[first1,last1)的第一个元素的输入迭代器。

last1 :它是指向[first1,last1)的最后一个元素的输入迭代器。

first2 :它是指向[first2,last2)的第一个元素的输入迭代器。

pred :它是一个接受两个元素作为参数并执行函数设计任务的二进制函数。

返回值

如果两个容器中的所有元素都匹配,则函数返回true,否则返回false。

示例1

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool newpredicate(int m, int n)
{
    return(m==n);
}
int main()
{
    int newints[]={20,40,60,80,100};
    std::vector<int> 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.

示例2

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int u1[]={10,20,30,40,50};
    std::vector<int> vec_1(u1,u1+sizeof(u1)/sizeof(int));
    std::cout<<"The vector consists of:";
    for(unsigned int k=0; k<vec_1.size(); k++)
    std::cout<<" "<<vec_1[k];
    std::cout<<"\n";
    if(std::equal(vec_1.begin(),vec_1.end(),u1))
    std::cout<<"Both the containers have equal elements.\n";
    else
    cout<<"Both containers have different elements.";
}

输出结果:

The vector consists of: 10, 20,30,40,50
Both the containers have equal elements.

复杂性

该函数的复杂度从第一个元素到最后一个元素是线性的。

数据竞争

两个范围中的对象都被访问。

异常

如果任何一个参数抛出异常,该函数会抛出异常。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程