Unconventional Containers
Up until now, we've seen containers that are used to store groups of elements of the same type.
The C++ standard defines some other types that can contain types but offer a different set of functionalities from the containers we saw previously.
These types are as follows:
String
Pair and tuple
Optional
Variant
Strings
A string is a data structure that's used to manipulate mutable sequences of contiguous characters. The C++ string classes are STL containers: they behave similarly to vectors, but provide additional functionalities that ease the programmer to perform common operations of sequences of characters easily.
There exist several string implementations in the standard library that are useful for different lengths of character sets, such as string, wstring, u16string, and u32string. All of them are a specialization of the basic_string base class and they all have the same interface.
The most commonly used type is std::string.
All types and functions for strings are de...