::replace_if  ](/w/cpp/algorithm/ranges/replace "cpp/algorithm/ranges/replace") (C++20)  (C++20)  |  replaces all values satisfying specific criteria with another value   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_replace&action=edit)  
[ ranges::replace_copy  ranges::replace_copy_if  ](/w/cpp/algorithm/ranges/replace_copy "cpp/algorithm/ranges/replace copy") (C++20)  (C++20)  |  copies a range, replacing elements satisfying specific criteria with another value   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_replace_copy&action=edit)  
[ ranges::swap_ranges  ](/w/cpp/algorithm/ranges/swap_ranges "cpp/algorithm/ranges/swap ranges") (C++20)  |  swaps two ranges of elements   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_swap_ranges&action=edit)  
[ ranges::reverse  ](/w/cpp/algorithm/ranges/reverse "cpp/algorithm/ranges/reverse") (C++20)  |  reverses the order of elements in a range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_reverse&action=edit)  
[ ranges::reverse_copy  ](/w/cpp/algorithm/ranges/reverse_copy "cpp/algorithm/ranges/reverse copy") (C++20)  |  creates a copy of a range that is reversed   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_reverse_copy&action=edit)  
[ ranges::rotate  ](/w/cpp/algorithm/ranges/rotate "cpp/algorithm/ranges/rotate") (C++20)  |  rotates the order of elements in a range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_rotate&action=edit)  
[ ranges::rotate_copy  ](/w/cpp/algorithm/ranges/rotate_copy "cpp/algorithm/ranges/rotate copy") (C++20)  |  copies and rotate a range of elements   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_rotate_copy&action=edit)  
[ ranges::shuffle  ](/w/cpp/algorithm/ranges/shuffle "cpp/algorithm/ranges/shuffle") (C++20)  |  randomly re-orders elements in a range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_shuffle&action=edit)  
[ ranges::shift_left  ranges::shift_right  ](/w/cpp/algorithm/ranges/shift "cpp/algorithm/ranges/shift") (C++23)  |  shifts elements in a range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_shift&action=edit)  
[ ranges::sample  ](/w/cpp/algorithm/ranges/sample "cpp/algorithm/ranges/sample") (C++20)  |  selects N random elements from a sequence   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_sample&action=edit)  
[ ranges::unique  ](/w/cpp/algorithm/ranges/unique "cpp/algorithm/ranges/unique") (C++20)  |  removes consecutive duplicate elements in a range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_unique&action=edit)  
[ ranges::unique_copy  ](/w/cpp/algorithm/ranges/unique_copy "cpp/algorithm/ranges/unique copy") (C++20)  |  creates a copy of some range of elements that contains no consecutive duplicates   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_unique_copy&action=edit)  
  
#####  Partitioning operations  
  
[ ranges::is_partitioned  ](/w/cpp/algorithm/ranges/is_partitioned "cpp/algorithm/ranges/is partitioned") (C++20)  |  determines if the range is partitioned by the given predicate   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_is_partitioned&action=edit)  
[ ranges::partition  ](/w/cpp/algorithm/ranges/partition "cpp/algorithm/ranges/partition") (C++20)  |  divides a range of elements into two groups   
(niebloid)  [ [e