Algorithms

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");

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.