The following code example is taken from the book
 
  C++20 - The Complete Guide
 by Nicolai M. Josuttis,
 Leanpub, 2021 
 
 The code is licensed under a
 
     Creative Commons Attribution 4.0 International License.
      
 
 
// raw code
 
#include <iostream> 
#include <vector> 
#include <algorithm> 
#include <ranges> 
 
void print(auto coll) 
{ 
  std::cout << '['; 
  for (const auto& elem : coll) { 
    std::cout << elem << ' '; 
  } 
  std::cout << "]\n"; 
} 
 
int main() 
{ 
  std::vector<int> coll{25, -42, 2, 0, 122, -5, 7};   
  print(coll); 
 
  // default sorting of the whole range/container:  
  std::ranges::sort(coll); 
  print(coll); 
 
  // passing a sorting criterion:  
  std::ranges::sort(coll, 
                    [] (auto val1, auto val2) { 
                      return std::abs(val1) < std::abs(val2); 
                    }); 
  print(coll); 
 
  // passing a transformation/projection:  
  std::ranges::sort(coll, 
                    std::less{}, 
                    [] (auto val) { 
                      return std::abs(val); 
                    }); 
  print(coll); 
 
  // find the element where the square is 25:  
  auto pos = std::ranges::find(coll, 25,                  // find element with value 25  
                               [](auto x) {return x*x;}); // when it is squared  
  if (pos != coll.end()) { 
    std::cout << "first value with square 25: " << *pos << '\n'; 
  } 
}