# std::ranges::transform_view<V,F>::size

From cppreference.com
< cpp‎ | ranges‎ | transform view

constexpr auto size() requires ranges::sized_range<V>; |  | (since C++20)
constexpr auto size() const requires ranges::sized_range<const V>; |  | (since C++20)

Returns the number of elements.

Returns ranges::size(base_), where `base_` is the underlying view.

### Parameters

(none)

### Return value

The number of elements.

### Notes

If `V` does not model `forward_range`, `size()` might not be well-defined after a call to begin().

### Example

Run this code

    #include <iostream>
    #include <ranges>
    #include <string>
    #include <cctype>

    int main()
    {
        std::string s{"The length of this string is 42 characters"};
        auto tv = std::ranges::transform_view{s, [](char c) -> char {
            return std::toupper(c); }
        };
        for (auto x: tv) { std::cout << x; };
        std::cout << "\nsize = " << tv.size() << '\n';
    }

Output:

    THE LENGTH OF THIS STRING IS 42 CHARACTERS
    size = 42

### See also

ranges::size (C++20) | returns an integer equal to the size of a range (customization point object)
ranges::ssize (C++20) | returns a signed integer equal to the size of a range (customization point object)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/transform_view/size&oldid=138356"