Constructors that use part of a C-style string let you initialize a string
object from part of a C-style string; more generally, they let you initialize a charT
specialization from part of an array of charT
values:
basic_string(const charT* s, size_type n, const Allocator& a = Allocator());
This constructor copies to the constructed object a total of n
characters from the array pointed to by s
. Note that it doesn’t stop copying if s
has fewer characters than n
. If n
exceeds the length of s
, the constructor interprets the contents of memory following the string as if they held data of type charT
.
This constructor requires that s
is not a null pointer and that n < npos
. (Recall that npos
is a static class constant equal to the maximum possible number of elements in a string.) If n
equals npos
, the constructor throws an out_of_range
exception. (Because n
is of type size_type
and npos
is the maximum size_type
value, n
cannot be greater than npos
.) Otherwise, the following relationships hold after the constructor is called:
• The data()
method returns a pointer to the first element of a copy of the array s
.
• The size()
method returns n
.
• The capacity()
method returns a value at least as large as size(
).
18.220.202.209