Chapter 6: STL Algorithms
Much of the power of the STL is in the standardization of container interfaces. If a container has a particular capability, there's a good chance that the interface for that capability is standardized across container types. This standardization makes possible a library of algorithms that operate seamlessly across containers and sequences sharing a common interface.
For example, if we want to sum all the elements in a vector
of int
, we could use a loop:
vector<int> x { 1, 2, 3, 4, 5 }; long sum{}; for( int i : x ) sum += i; // sum is 15
Or we could use an algorithm:
vector<int> x { 1, 2, 3, 4, 5 }; auto sum = accumulate(x.begin(), x.end(), 0); // sum is 15
This same syntax works with other containers:
deque<int> x { 1, 2, 3, 4, 5 }; auto sum = accumulate(x.begin(), x.end(), 0); ...