📜  C++ STL-algorithm.is_permutation()函数

📅  最后修改于: 2020-10-16 14:06:11             🧑  作者: Mango

C++ STL algorithm函数is_permutation()

C++ STL algorithm.is_permutation()函数比较两个容器中的元素,如果发现两个容器中的所有元素都匹配(即使顺序不同),则返回true值。第一个范围从[first1,last1)开始,第二个范围从first2开始。

句法

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

参数

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

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

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

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

返回值

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

#include
#include
#include
int main()
{
    std::array a={6,7,8,9,10};
    std::array 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.

复杂度

该函数从first1元素到last1元素具有线性复杂度。

数据竞争

访问两个范围中的对象。

异常处理

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