convert all strings in vector to lowercase or uppercase c++

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

int main() {
    std::vector<std::string> strings = {"Hello", "World", "C++", "Programming"};

    // Convert all strings to lowercase
    std::transform(strings.begin(), strings.end(), strings.begin(), [](std::string& str) {
        std::transform(str.begin(), str.end(), str.begin(), ::tolower);
        return str;
    });

    // Print the lowercase strings
    std::cout << "Lowercase strings:" << std::endl;
    for (const auto& str : strings) {
        std::cout << str << " ";
    }
    std::cout << std::endl;

    // Convert all strings to uppercase
    std::transform(strings.begin(), strings.end(), strings.begin(), [](std::string& str) {
        std::transform(str.begin(), str.end(), str.begin(), ::toupper);
        return str;
    });

    // Print the uppercase strings
    std::cout << "Uppercase strings:" << std::endl;
    for (const auto& str : strings) {
        std::cout << str << " ";
    }
    std::cout << std::endl;

    return 0;
}