The string abstraction, Include files – HP Integrity NonStop H-Series User Manual
Page 130
![background image](/manuals/396950/130/background.png)
Click on the banner to return to the user guide home page.
©Copyright 1996 Rogue Wave Software
The string Abstraction
A string is basically an indexable sequence of characters. In fact, although a string is not
declared as a subclass of
vector
, almost all of the vector operators discussed in
applied to string values. However, a string is also a much more abstract quantity, and, in
addition to simple vector operators, the
string
data type provides a number of useful and
powerful high level operations.
In the standard library, a string is actually a template class, named
basic_string
. The template
argument represents the type of character that will be held by the string container. By defining
strings in this fashion, the standard library not only provides facilities for manipulating
sequences of normal 8-bit ASCII characters, but also for manipulating other types of
character-like sequences, such as 16-bit wide characters. The data types
string
and
wstring
(for
wide string) are simply typedefs of basic_string, defined as follows:
typedef basic_string
typedef basic_string
Strings and Wide Strings
As we have already noted, a string is similar in many ways to a vector of characters. Like the
vector
data type, there are two sizes associated with a string. The first represents the number of
characters currently being stored in the string. The second is the capacity, the maximum number
of characters that can potentially be stored into a string without reallocation of a new internal
buffer. As it is in the vector data type, the capacity of a string is a dynamic quantity. When
string operations cause the number of characters being stored in a string value to exceed the
capacity of the string, a new internal buffer is allocated and initialized with the string values,
and the capacity of the string is increased. All this occurs behind the scenes, requiring no
interaction with the programmer.
Include Files
Programs that use strings must include the string header file:
# include