/* std::string_view is a lightweight object that provides read-only access to a 
contiguous sequence of characters. It acts as a non-owning reference to a string,
allowing you to operate on substrings without the overhead of copying the data.

std::string_view provides several advantages over std::string in certain situations.
Here are a few common use cases:

Substring operations: std::string_view can be used to extract substrings from a 
string without the overhead of copying the data.

Function arguments: When you pass a string as an argument to a function, using 
std::string_view instead of std::string avoids the overhead of copying the data if
the function only needs to access the string and not modify it.

Performance: std::string_view is more lightweight than std::string, so using it 
instead of std::string in situations where you only need to access the string data 
can improve performance.

C-style strings compatibility: std::string_view can be constructed from a C-style 
string, making it easier to use with existing C functions.

Note: While std::string_view provides several benefits, it also has some
limitations. For example, because it is a non-owning reference, it does not manage 
the memory of the string data it references. This means that the referenced string
data must remain valid for the lifetime of the std::string_view object.
*/

#include <iostream>
#include <string_view>

int main()
{
    std::string str = "Hello, World!";
    std::string_view view = str;
    std::cout << "Size of string_view: " << view.size() << std::endl;
    for (char c : view) {
        std::cout << c;
    }
    std::cout << std::endl;
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: