hether a range starts with another range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_starts_with&action=edit)  
[ ranges::ends_with  ](/w/cpp/algorithm/ranges/ends_with "cpp/algorithm/ranges/ends with") (C++23)  |  checks whether a range ends with another range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_ends_with&action=edit)  
  
#####  Modifying sequence operations  
  
[ ranges::copy  ranges::copy_if  ](/w/cpp/algorithm/ranges/copy "cpp/algorithm/ranges/copy") (C++20)  (C++20)  |  copies a range of elements to a new location   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_copy&action=edit)  
[ ranges::copy_n  ](/w/cpp/algorithm/ranges/copy_n "cpp/algorithm/ranges/copy n") (C++20)  |  copies a number of elements to a new location   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_copy_n&action=edit)  
[ ranges::copy_backward  ](/w/cpp/algorithm/ranges/copy_backward "cpp/algorithm/ranges/copy backward") (C++20)  |  copies a range of elements in backwards order   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_copy_backward&action=edit)  
[ ranges::move  ](/w/cpp/algorithm/ranges/move "cpp/algorithm/ranges/move") (C++20)  |  moves a range of elements to a new location   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_move&action=edit)  
[ ranges::move_backward  ](/w/cpp/algorithm/ranges/move_backward "cpp/algorithm/ranges/move backward") (C++20)  |  moves a range of elements to a new location in backwards order   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_move_backward&action=edit)  
[ ranges::fill  ](/w/cpp/algorithm/ranges/fill "cpp/algorithm/ranges/fill") (C++20)  |  assigns a range of elements a certain value   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_fill&action=edit)  
[ ranges::fill_n  ](/w/cpp/algorithm/ranges/fill_n "cpp/algorithm/ranges/fill n") (C++20)  |  assigns a value to a number of elements   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_fill_n&action=edit)  
[ ranges::transform  ](/w/cpp/algorithm/ranges/transform "cpp/algorithm/ranges/transform") (C++20)  |  applies a function to a range of elements   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_transform&action=edit)  
[ ranges::generate  ](/w/cpp/algorithm/ranges/generate "cpp/algorithm/ranges/generate") (C++20)  |  saves the result of a function in a range   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_generate&action=edit)  
[ ranges::generate_n  ](/w/cpp/algorithm/ranges/generate_n "cpp/algorithm/ranges/generate n") (C++20)  |  saves the result of N applications of a function   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_generate_n&action=edit)  
[ ranges::remove  ranges::remove_if  ](/w/cpp/algorithm/ranges/remove "cpp/algorithm/ranges/remove") (C++20)  (C++20)  |  removes elements satisfying specific criteria   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_remove&action=edit)  
[ ranges::remove_copy  ranges::remove_copy_if  ](/w/cpp/algorithm/ranges/remove_copy "cpp/algorithm/ranges/remove copy") (C++20)  (C++20)  |  copies a range of elements omitting those that satisfy specific criteria   
(niebloid)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/algorithm/ranges/dsc_remove_copy&action=edit)  
[ ranges::replace  ranges