STL Algorithms: Part 2
Lesson Introduction
Welcome back! In our previous lesson, we explored the fundamentals of STL algorithms in C++ and how they can enhance your code's efficiency and readability. Today, we will continue this journey by diving into more advanced STL algorithms, with a focus on std::accumulate.
By the end of this lesson, you should understand:
- How to use
std::accumulateto find the sum of numbers in a vector. - Advanced uses of
std::accumulatewith custom functionalities using lambda expressions.
Understanding `std::accumulate`
std::accumulate in the <numeric> header performs a fold or reduction operation over a range of elements. It combines the elements using a binary operation, starting with an initial value.
The basic syntax of std::accumulate:
- First: Iterator to the beginning of the range.
- Last: Iterator to the end of the range.
- Init: Initial value to start the accumulation.
Example of Using `std::accumulate`
Here is an example using std::accumulate to sum the elements of a vector:
Explanation:
- Initialize a vector: We initialize a vector
datawith{1, 2, 3, 4, 5}. - Use
std::accumulate: We pass the range defined bydata.begin()anddata.end(), and the initial value0. - Result: The function sums the elements starting from
0. The final sum,15, is outputted.
Advanced Use of `std::accumulate`
Consider computing the product of elements:
Explanation:
- Initial Value: Use
1as the initial value. - Custom Operation: Use
std::multiplies<int>()for multiplication.
