Top 5 Beautiful C++ Standard Library Algorithms Examples

C++ Standard Library is a rich and powerful resource for developers, offering a wide array of algorithms that can simplify and streamline your code. These algorithms are a part of the Standard Template Library (STL) and provide efficient and elegant solutions to common programming problems. In this article, we’ll explore five beautiful C++ Standard Library algorithms with detailed examples, showcasing their versatility and utility.

1. std::sort

The std::sort algorithm is used for sorting elements in a container. It uses the QuickSort algorithm under the hood and offers excellent performance.

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {5, 2, 9, 1, 5, 6};

    std::sort(numbers.begin(), numbers.end());

    for (const int& num : numbers) {
        std::cout << num << " ";
    }

    return 0;
}

Output:

1 2 5 5 6 9

2. std::find

The std::find algorithm searches for an element in a container and returns an iterator to the first occurrence of the element.

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    int target = 3;

    auto it = std::find(numbers.begin(), numbers.end(), target);

    if (it != numbers.end()) {
        std::cout << "Found " << target << " at position " << (it - numbers.begin()) << std::endl;
    } else {
        std::cout << target << " not found." << std::endl;
    }

    return 0;
}

Output:

Found 3 at position 2

3. std::accumulate

The std::accumulate algorithm calculates the sum of elements in a container, starting with an initial value.

#include <iostream>
#include <vector>
#include <numeric>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    int initial_value = 0;

    int sum = std::accumulate(numbers.begin(), numbers.end(), initial_value);

    std::cout << "Sum: " << sum << std::endl;

    return 0;
}

Output:

Sum: 15

4. std::count_if

The std::count_if algorithm counts the number of elements in a container that satisfy a given condition.

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6};
    int threshold = 3;

    int count = std::count_if(numbers.begin(), numbers.end(), [&](int x) {
        return x > threshold;
    });

    std::cout << "Count of elements greater than " << threshold << ": " << count << std::endl;

    return 0;
}

Output:

Count of elements greater than 3: 3

5. std::transform

The std::transform algorithm applies a given operation to each element in a container and stores the result in another container.

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    std::vector<int> squares;

    std::transform(numbers.begin(), numbers.end(), std::back_inserter(squares), [](int x) {
        return x * x;
    });

    for (const int& square : squares) {
        std::cout << square << " ";
    }

    return 0;
}

Output:

1 4 9 16 25

These examples demonstrate the power and elegance of C++ Standard Library algorithms. By leveraging these algorithms, you can write efficient, readable, and maintainable code, reducing the need for writing custom loops and repetitive code. Incorporate these algorithms into your C++ programming toolbox to simplify your code and enhance your productivity.

About the Author: Syed Wahaj

Leave A Comment