basic_string&
operator+=(const basic_string& str);
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);
basic_string&
append(const basic_string& str);
basic_string&
append(const basic_string& str, size_type pos, size_type n = npos);
Effects: Определяет эффективную длину rlen добавляемой строки как меньшее из вызовов n и str.size() - pos и append(str.data() + pos, rlen).
basic_string& append(basic_string_view<charT, traits> sv);
template<class T>
basic_string& append(const T& t, size_type pos, size_type n = npos);
Effects: Создает переменную sv, как будто by basic_string_view<charT, traits> sv = t. Определяет эффективную длину rlen добавляемой строки как меньшее из вызовов n и sv.size() - posи append(sv.data() + pos, rlen).
Remarks: Эта функция не будет участвовать в разрешении перегрузки , если is_convertible_v<const T&, basic_string_view<charT, traits>> не true и is_convertible_v<const T&, const charT*> является false.
basic_string&
append(const charT* s, size_type n);
Effects: Функция заменяет строку, которой управляет, *this строкой длины size() + n , первые size() элементы которой являются копией исходной строки, которой управляет, *this а остальные элементы - копией начальных n элементов s.
basic_string& append(const charT* s);
Requires: s указывает на массив, состоящий как минимум из traits::length(s) + 1 элементов charT.
basic_string& append(size_type n, charT c);
template<class InputIterator>
basic_string& append(InputIterator first, InputIterator last);
basic_string& append(initializer_list<charT> il);
void push_back(charT c);
basic_string& assign(const basic_string& str);
basic_string& assign(basic_string&& str)
noexcept(allocator_traits<Allocator>::propagate_on_container_move_assignment::value ||
allocator_traits<Allocator>::is_always_equal::value);
basic_string&
assign(const basic_string& str, size_type pos,
size_type n = npos);
Effects: Определяет эффективную длину rlen строки, которая назначается как меньшее из вызовов n и str.size() - pos и assign(str.data() + pos, rlen).
basic_string& assign(basic_string_view<charT, traits> sv);
template<class T>
basic_string& assign(const T& t, size_type pos, size_type n = npos);
Effects: Создает переменную sv, как будто by basic_string_view<charT, traits> sv = t. Определяет эффективную длину rlen строки, которая назначается как меньшее из вызовов n и sv.size() - posи assign(sv.data() + pos, rlen).
Remarks: Эта функция не будет участвовать в разрешении перегрузки , если is_convertible_v<const T&, basic_string_view<charT, traits>> не true и is_convertible_v<const T&, const charT*> является false.
basic_string& assign(const charT* s, size_type n);
Effects: Заменяет строку, управляемую *this с помощью, строкой длины n , элементы которой являются копией тех, на которые указывает s.
basic_string& assign(const charT* s);
Requires: s указывает на массив, состоящий как минимум из traits::length(s) + 1 элементов charT.
basic_string& assign(initializer_list<charT> il);
basic_string& assign(size_type n, charT c);
template<class InputIterator>
basic_string& assign(InputIterator first, InputIterator last);
basic_string&
insert(size_type pos,
const basic_string& str);
basic_string&
insert(size_type pos1,
const basic_string& str,
size_type pos2, size_type n = npos);
Effects: Определяет эффективную длину rlen строки для вставки в качестве меньшего из вызовов n и str.size() - pos2 и insert(pos1, str.data() + pos2, rlen).
basic_string& insert(size_type pos, basic_string_view<charT, traits> sv);
template<class T>
basic_string& insert(size_type pos1, const T& t,
size_type pos2, size_type n = npos);
Effects: Создает переменную sv, как будто by basic_string_view<charT, traits> sv = t. Определяет эффективную длину rlen строки, которая назначается как меньшее из вызовов n и sv.size() - pos2и insert(pos1, sv.data() + pos2, rlen).
Remarks: Эта функция не будет участвовать в разрешении перегрузки , если is_convertible_v<const T&, basic_string_view<charT, traits>> не true и is_convertible_v<const T&, const charT*> является false.
basic_string&
insert(size_type pos, const charT* s, size_type n);
Effects: Заменяет строку, управляемую *this строкой длины size() + n , первые pos элементы которой являются копией начальных элементов исходной строки, которой управляет, *this и чьи следующие n элементы являются копией элементов в, s а остальные элементы являются копией остальных элементов исходная строка, управляемая *this.
basic_string&
insert(size_type pos, const charT* s);
Requires: s указывает на массив, состоящий как минимум из traits::length(s) + 1 элементов charT.
basic_string&
insert(size_type pos, size_type n, charT c);
iterator insert(const_iterator p, charT c);
iterator insert(const_iterator p, size_type n, charT c);
template<class InputIterator>
iterator insert(const_iterator p, InputIterator first, InputIterator last);
Returns: Итератор, который ссылается на копию первого вставленного символа, или p если first == last.
iterator insert(const_iterator p, initializer_list<charT> il);
basic_string& erase(size_type pos = 0, size_type n = npos);
Effects: Определяет эффективную длину xlen удаляемой строки как меньшее из значений n и size() - pos.
Затем функция заменяет строку, управляемую *this с помощью строки длины size() - xlen , первые pos элементы которой являются копией начальных элементов исходной строки, которой управляет *this, а остальные элементы которой являются копией элементов исходной строки, управляемой *this начиная с позиции pos + xlen.
iterator erase(const_iterator p);
Returns: Итератор, который указывает на элемент, следующий непосредственно за p стираемым элементом. Если такого элемента не существует, end() возвращается.
iterator erase(const_iterator first, const_iterator last);
Requires: first и last являются действительными итераторами *this, определяющими диапазон [first, last).
Returns: Итератор, который указывает на элемент, на который указывает до last удаления других элементов. Если такого элемента не существует, end() возвращается.
void pop_back();
basic_string&
replace(size_type pos1, size_type n1,
const basic_string& str);
basic_string&
replace(size_type pos1, size_type n1,
const basic_string& str,
size_type pos2, size_type n2 = npos);
Effects: Определяет эффективную длину rlen вставляемой строки как меньшее из вызовов n2 и str.size() - pos2 и replace(pos1, n1, str.data() + pos2, rlen).
basic_string& replace(size_type pos1, size_type n1,
basic_string_view<charT, traits> sv);
template<class T>
basic_string& replace(size_type pos1, size_type n1, const T& t,
size_type pos2, size_type n2 = npos);
Effects: Создает переменную sv, как будто by basic_string_view<charT, traits> sv = t. Определяет эффективную длину rlen вставляемой строки как меньшее из вызовов n2 и sv.size() - pos2и replace(pos1, n1, sv.data() + pos2, rlen).
Remarks: Эта функция не будет участвовать в разрешении перегрузки , если is_convertible_v<const T&, basic_string_view<charT, traits>> не true и is_convertible_v<const T&, const charT*> является false.
basic_string&
replace(size_type pos1, size_type n1, const charT* s, size_type n2);
Throws: out_of_range если pos1 > size() или length_error если длина результирующей строки превысит max_size() (см. ниже).
Effects: Определяет эффективную длину xlen удаляемой строки как меньшее из значений n1 и size() - pos1. Если size() - xlen >= max_size() - n2 кидает length_error. В противном случае функция заменяет строку, управляемую символом *,this строкой длины size() - xlen + n2 , первые pos1 элементы которой являются копией начальных элементов исходной строки *this, которой управляет , чьи следующие n2 элементы являются копией начальных n2 элементов s, а остальные элементы - копия элементов исходной строки, управляемая *this начиная с позиции pos + xlen.
basic_string&
replace(size_type pos, size_type n, const charT* s);
Requires: s указывает на массив, состоящий как минимум из traits::length(s) + 1 элементов charT.
basic_string&
replace(size_type pos1, size_type n1,
size_type n2, charT c);
basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str);
basic_string& replace(const_iterator i1, const_iterator i2,
basic_string_view<charT, traits> sv);
basic_string&
replace(const_iterator i1, const_iterator i2, const charT* s, size_type n);
Requires: [begin(), i1) и [i1, i2) являются допустимыми диапазонами и s указывают на массив, состоящий как минимум из n элементов charT.
basic_string& replace(const_iterator i1, const_iterator i2, const charT* s);
Requires: [begin(), i1) и [i1, i2) являются допустимыми диапазонами и s указывают на массив, состоящий как минимум из traits::length(s) + 1 элементов charT.
basic_string& replace(const_iterator i1, const_iterator i2, size_type n,
charT c);
template<class InputIterator>
basic_string& replace(const_iterator i1, const_iterator i2,
InputIterator j1, InputIterator j2);
basic_string& replace(const_iterator i1, const_iterator i2,
initializer_list<charT> il);
size_type copy(charT* s, size_type n, size_type pos = 0) const;
Effects: Эквивалент: traits::copy(s, data() + pos, rlen). [ Note: Это не заканчивается s нулевым объектом. ] — end note
void swap(basic_string& s)
noexcept(allocator_traits<Allocator>::propagate_on_container_swap::value ||
allocator_traits<Allocator>::is_always_equal::value);
Postconditions: *this содержит ту же последовательность символов, которая была в s, s содержит ту же последовательность символов, что была в *this.