当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ is_permutation()用法及代码示例


C++ 算法 is_permutation() 函数比较两个容器中的元素,如果发现两个容器中的所有元素都匹配,即使顺序不同,也返回真值。第一个范围从 [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.

复杂度

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

数据竞争

访问两个范围内的对象。

异常

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






相关用法


注:本文由纯净天空筛选整理自 C++ Algorithm Functions is_permutation()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。