explicit basic_string(const Allocator& a) noexcept;
basic_string(const basic_string& str);
basic_string(basic_string&& str) noexcept;
Effects: Создает объект класса, basic_string как указано в Табл56. Во второй формеstr остается в допустимом состоянии с неопределенным значением.
Элемент | Ценить |
data() | указывает на первый элемент выделенной копии массива, на первый элемент которого указываетstr.data() |
size() | str.size() |
capacity() | значение, по крайней мере, такое большое, какsize() |
basic_string(const basic_string& str, size_type pos,
const Allocator& a = Allocator());
basic_string(const basic_string& str, size_type pos, size_type n,
const Allocator& a = Allocator());
Effects: Создает объект классаbasic_string и определяет эффективную длинуrlen начального строкового значения как меньшее изn иstr.size() - pos, как указано в таблице57.
Элемент | Ценить |
data() | указывает на первый элемент выделенной копииrlen последовательных элементов строки, управляемойstr начиная с позицииpos |
size() | rlen |
capacity() | значение, по крайней мере, такое большое, какsize() |
template<class T>
basic_string(const T& t, size_type pos, size_type n,
const Allocator& a = Allocator());
Effects: Создает переменную,svкак если бы by,basic_string_view<charT, traits> sv = t; а затем ведет себя так же, как:
basic_string(sv.substr(pos, n), a);
Remarks: Этот конструктор не должен участвовать в разрешении перегрузки , еслиis_convertible_v<const T&, basic_string_view<charT, traits>> неtrue.
explicit basic_string(basic_string_view<charT, traits> sv,
const Allocator& a = Allocator());
basic_string(const charT* s, size_type n,
const Allocator& a = Allocator());
Effects: Создает объект класса basic_string и определяет его начальное строковое значение из массива charT длиныn , первый элемент которого обозначенs, как указано в таблице58.
Элемент | Ценить |
data() | указывает на первый элемент выделенной копии массива, на первый элемент которого указываетs |
size() | n |
capacity() | значение, по крайней мере, такое большое, какsize() |
basic_string(const charT* s, const Allocator& a = Allocator());
Effects: Создает объект класса basic_string и определяет его начальное строковое значение из массива charT длины traits::length(s) , первый элемент которого обозначенs, как указано в таблице59.
Элемент | Ценить |
data() | указывает на первый элемент выделенной копии массива, на первый элемент которого указываетs |
size() | traits::length(s) |
capacity() | значение, по крайней мере, такое большое, какsize() |
basic_string(size_type n, charT c, const Allocator& a = Allocator());
Effects: Создает объект класса basic_string и определяет его начальное строковое значение, повторяя объект типа charc для всехn элементов, как указано в таблице60.
Элемент | Ценить |
data() | указывает на первый элемент выделенного массиваn элементов, каждый из которых хранит начальное значениеc |
size() | n |
capacity() | значение, по крайней мере, такое большое, какsize() |
template<class InputIterator>
basic_string(InputIterator begin, InputIterator end,
const Allocator& a = Allocator());
Effects: ЕслиInputIterator это целочисленный тип, эквивалентный:
basic_string(static_cast<size_type>(begin), static_cast<value_type>(end), a);
В противном случае создает строку из значений в диапазоне [begin,end), как указано в таблице требований к последовательности (см.[sequence.reqmts]).
basic_string(initializer_list<charT> il, const Allocator& a = Allocator());
basic_string(const basic_string& str, const Allocator& alloc);
basic_string(basic_string&& str, const Allocator& alloc);
Effects: Создает объект класса,basic_string как указано в Табл61. Сохраненный распределитель построен из alloc. Во второй формеstr остается в допустимом состоянии с неопределенным значением.
Элемент | Ценить |
data() | указывает на первый элемент выделенной копии массива, на первый элемент которого указывает исходное значениеstr.data(). |
size() | первоначальная стоимостьstr.size() |
capacity() | значение, по крайней мере, такое большое, какsize() |
get_allocator() | alloc |
template<class InputIterator,
class Allocator = allocator<typename iterator_traits<InputIterator>::value_type>>
basic_string(InputIterator, InputIterator, Allocator = Allocator())
-> basic_string<typename iterator_traits<InputIterator>::value_type,
char_traits<typename iterator_traits<InputIterator>::value_type>,
Allocator>;
Remarks: Не должен участвовать в разрешении перегрузки, если InputIterator это тип, который не квалифицируется как итератор ввода, или еслиAllocator это тип, который не квалифицируется как распределитель ([container.requirements.general]).
basic_string& operator=(const basic_string& str);
basic_string& operator=(basic_string&& str)
noexcept(allocator_traits<Allocator>::propagate_on_container_move_assignment::value ||
allocator_traits<Allocator>::is_always_equal::value);
Effects: Перемещение присваивается как asequence container, за исключением того, что итераторы, указатели и ссылки могут быть недействительными.
basic_string& operator=(basic_string_view<charT, traits> sv);
basic_string& operator=(const charT* s);
basic_string& operator=(charT c);
basic_string& operator=(initializer_list<charT> il);