The algorithms in the ranges library that do not return a view or a mutated container are simply referred to as algorithms. Examples of such algorithms are ranges::count, ranges::any_of, and so on. They work exactly as non-mutating algorithms in STL, with the exception that they use a range as input instead of a pair of iterators.
Unlike actions and views, algorithms cannot be chained with the | operator:
auto cars = std::vector<std::string>{"volvo","saab","trabant"};// Using the STL libraryauto num_volvos_a = std::count(cars.begin(), cars.end(), "volvo");// Using the ranges libraryauto num_volvos_b = ranges::count(cars, "volvo");