C++
Beginner
1 min read
STL Algorithms and Iterators
Example
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <functional>
#include <iterator>
int main() {
std::vector<int> nums = {5, 3, 8, 1, 9, 2, 7, 4, 6};
// Sorting
std::sort(nums.begin(), nums.end());
std::cout << "sorted: ";
std::copy(nums.begin(), nums.end(),
std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
// Binary search on sorted range
std::cout << "has 7: "
<< std::binary_search(nums.begin(), nums.end(), 7) << "\n";
// Partition: evens first
std::vector<int> v2 = {1,2,3,4,5,6,7,8};
auto mid = std::partition(v2.begin(), v2.end(),
[](int n){ return n % 2 == 0; });
std::cout << "evens: ";
for (auto it = v2.begin(); it != mid; ++it)
std::cout << *it << " ";
std::cout << "\n";
// Transform: square each element
std::vector<int> squares(nums.size());
std::transform(nums.begin(), nums.end(), squares.begin(),
[](int n){ return n * n; });
std::cout << "squares: ";
for (int x : squares) std::cout << x << " ";
std::cout << "\n";
// Numeric accumulate
int total = std::accumulate(nums.begin(), nums.end(), 0);
std::cout << "sum = " << total << "\n";
// Min/max element
auto [lo, hi] = std::minmax_element(nums.begin(), nums.end());
std::cout << "min=" << *lo << " max=" << *hi << "\n";
return 0;
}