當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。