C++ Algorithm next_permutation ()14 Dec 2025 | 4 min read C++ Algorithm next_permutation() function is used to reorder the elements in the range [first, last) into the next lexicographically greater permutation. A permutation is specified as each of several possible ways in which a set or number of things can be ordered or arranged. It is denoted as N! where N = number of elements in the range. Elements are compared using operator < for the first version or using the given binary comparison function comp for the second version. SyntaxParameterfirst: A bidirectional iterator pointing to the first element in the range to be permuted. last: An input iterator pointing the position one past the last in the range to be permuted. comp: A user-defined binary predicate function that accepts two arguments and returns true if the two arguments are in order, otherwise returns false. It follows the strict weak ordering to order the elements. Return valueIt returns true if the function could reorder the object as a lexicographically greater permutations. Else, the function returns false to indicate that the arrangement is not greater than the previous, but the lowest possible (sorted in ascending order). ComplexityComplexity is up to linear in half the distance between first and last. Data RacesThe objects in the range [first, last) are modified. ExceptionsThis function throws an exception if either element are swapped or an operation on iterator throws an exception. Note: The invalid parameters cause an undefined behavior.Example 1Let's see the simple example to demonstrate the use of next_permutation(): Output: aab aba baa Example 2Let's see another simple example: Output: The 3! possible permutations with 3 elements: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 After loop: 1 2 3 Example 3Let's see another simple example: Output: 1 2 3 4 1 2 4 3 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2 2 1 3 4 2 1 4 3 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1 3 1 2 4 3 1 4 2 3 2 1 4 3 2 4 1 3 4 1 2 3 4 2 1 4 1 2 3 4 1 3 2 4 2 1 3 4 2 3 1 4 3 1 2 4 3 2 1 Example 4Let's see a simple example: Output: 231 312 321 Next TopicJava stringbuilder length method |
algorithm find_first_of() function
C++ Algorithm Function find_first_of() C++ Algorithm find_first_of() function compares the values stored in two containers i.e [first1, last1) and [first2, last2). If an element similar to the one in the range [first2, last2) is found in [first1, last1) then an iterator to that element is returned by...
2 min read
algorithm mismatch() function
C++ Algorithm Functions mismatch() C++ Algorithm mismatch() function compares both the containers to spot for any mismatch of values. The function returns the first element of both the containers that does not match. Syntax template<class InputIterator1, classInputIterator2> pair<InputIterator1, InputIterator2> mismatch(InputIterator1 first1, InputIterator2 first2> template<class InputIterator1, class InputIterator2, class BinaryPredicate> pair<InputIterator1,InputIterator2> mismatch(InputIterator1 first1,...
3 min read
algorithm equal() function
C++ Algorithm Function equal() C++ Algorithm equal()function compares the elements in both the containers and returns a true value if all the elements in both the containers are found to be matching. The first range is from [first1,last1) and the second starts from first2. Syntax template<class InputIterator1, class...
2 min read
algorithm lower_bound() function
C++ Algorithm lower_bound() C++ Algorithm lower_bound() function is the version of binary search. This function is used to return an iterator pointing to the first element in an ordered range [first, last) that is not less than (i.e. greater than or equal to) to the specified value...
4 min read
algorithm remove() function
C++ Algorithm remove() C++ Algorithm remove() function is used to eliminate all the elements that are equal to val from a given range [first, last) without disturbing the order of the remaining elements. This function cannot alter the size of the container. It returns an iterator to the...
5 min read
algorithm stable_partition() function
C++ Algorithm stable_partition() C++ Algorithm stable_partition() function is used to classify the elements in the range [first, last), in such a way that all the elements for which pred returns true precede all those for which it returns false, where the relative order of elements is preserved. Note:...
4 min read
algorithm partition() function
C++ Algorithm partition() C++ Algorithm partition() function is used to make partition the elements on the basis of given predicate (condition) mentioned in its arguments. If the container is partitioned then this function returns true, else returns false. Syntax template <class BidirectionalIterator, class UnaryPredicate> BidirectionalIterator partition (BidirectionalIterator first, BidirectionalIterator last, UnaryPredicate...
5 min read
algorithm replace_copy() function
C++ Algorithm replace_copy() C++ Algorithm replace_copy() function is used to make a copy of the range [first, last) and replaces all old_value by the value new_value into it. It uses operator= to make the copy and to compare the elements it uses operator==. This function examines each element...
5 min read
algorithm find_if_not() function
C++ Algorithm Function find_if_not() C++ Algorithm find_if_not()function returns the value of the first element in the range for which the pred value is false otherwise the last element of the range is given. Syntax template <class InputIterator, class UnaryPredicate> InputIterator find_if_not (InputIterator first, InputIterator last, UnaryPredicate pred); Parameter first: It specifies the...
2 min read
algorithm replace() function
C++ Algorithm replace() C++ Algorithm replace() function is used to replace all value equal to old_value by the value new_value in the range [first, last). This function examines each element in the range and replaces it if it matches a specified value. Syntax template <class ForwardIterator, class T> void...
4 min read
We request you to subscribe our newsletter for upcoming updates.

We provides tutorials and interview questions of all technology like java tutorial, android, java frameworks
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India