Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Determines whether the elements in a given range form a valid permutation. A permutation is a series of elements in which all of the elements that test true for a condition precede elements that return false.
template<class FwdIt1, class FwdIt2>
bool is_permutation(FwdIt first1, FwdIt last1,
FwdIt first2);
template<class FwdIt1, class FwdIt2, class Pr>
bool is_permutation(FwdIt first1, FwdIt last1,
FwdIt first2, Pr pred);
Parameters
first1
A forward iterator that refers to the first element of the given range.last1
A forward iterator that refers to the non-inclusive last element of the given range.first2
A forward iterator that refers to the first element of a second range, used for comparison.pred
A predicate that returns a bool.
Return Value
true when all of the elements in the given range that test true for a condition come before any elements that test false; otherwise, false.
Remarks
The first template function assumes that there are as many elements in the range beginning at first2 as there are in the range designated by [first1, last1). It returns true only if, for each element X in the range designated by [first1, last1) there are as many elements Y in the same range for which X == Y as there are in the range beginning at first2. Here, operator== must perform a pairwise comparison between its operands.
The second template function behaves the same, except that it replaces operator==(X, Y) with pred(X, Y).
Requirements
Header: <algorithm>
Namespace: std