# C++ Algorithm Library - is_permutation() Function

## Description

The C++ function std::algorithm::is_permutation() tests whether a sequence is permutation of other or not. It uses operator == for comparison.

## Declaration

Following is the declaration for std::algorithm::is_permutation() function form std::algorithm header.

### C++11

```template <class ForwardIterator1, class ForwardIterator2>
bool is_permutation(ForwardIterator1 first1,ForwardIterator1 last1,
ForwardIterator2 first2);
```

## Parameters

• first1 − Input iterator to the initial position of the first sequence.

• last1 − Input iterator to the final position of the first sequence.

• first2 − Input iterator to the initial position of the second sequence.

## Return value

Returns true if first range is permutation of another otherwise it returns false.

## Exceptions

Throws exception if either the element comparison or an operation on an iterator throws exception.

Please note that invalid parameters cause undefined behavior.

## Example

The following example shows the usage of std::algorithm::is_permutation() function.

```#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void) {
vector<int> v1 = {1, 2, 3, 4, 5};
vector<int> v2 = {5, 4, 3, 2, 1};
bool result;

result = is_permutation(v1.begin(), v1.end(), v2.begin());

if (result == true)
cout << "Both vector contains same elements." << endl;

v2 = 10;

result = is_permutation(v1.begin(), v1.end(), v2.begin());

if (result == false)
cout << "Both vector doesn't contain same elements." << endl;
return 0;
}
```

Let us compile and run the above program, this will produce the following result −

```Both vector contains same elements.
Both vector doesn't contain same elements.
```
algorithm.htm