...

/

Use string_view as a Lightweight String Object

Use string_view as a Lightweight String Object

Learn to use string_view as a lightweight string object.

We'll cover the following...

The string_view class provides a lightweight alternative to the string class. Instead of maintaining its own data store, string_view operates on a view of a C-string. This makes string_view smaller and more efficient than std::string. It's useful in cases where we need a string object but don't need the more memory- and computation-intensive features of std::string.

How to do it

The string_view class looks deceptively similar to the STL string class, but it works a bit differently. Let's consider some examples:

  • Here's an STL string initialized from a C-string (array of char):

char text[]{ "hello" };
string greeting{ text };
text[0] = 'J';
cout << text << ' ' << greeting << '\n';

Output:

Jello hello

Notice that the string does not change when we modify the array. This is because the string constructor creates its own copy of the underlying data.

  • When we do the same with a string_view, we get a different ...