C++算法 is_permutation()函数

C++算法 is_permutation()函数

C++算法is_permutation()函数比较两个容器中的元素,并在两个容器中的所有元素都匹配时返回true,即使顺序不同。第一个范围是从[first1, last1)开始,第二个范围从first2开始。

语法

template<class ForwardIterator1, class ForwardIterator2> bool is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2);
template<class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> bool is_permutation(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator first2, BinaryPredicate pred);

参数

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

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

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

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

返回值

如果两个容器中的所有元素匹配(即使顺序不同),则该函数返回true;否则返回false。

示例

#include<iostream>
#include<algorithm>
#include<array>
int main()
{
    std::array<int, 5> a={6,7,8,9,10};
    std::array<int, 5> b={10,8,7,6,9};
    if(std::is_permutation(a.begin(),a.end(),b.begin()))
    std::cout<<"a and b have same elements.\n";
    return 0;
}

输出:

a and b have same elements.

复杂度

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

数据竞争

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

异常

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程