24 Strings library [strings]

24.3 String classes [string.classes]

24.3.2 Class template basic_­string [basic.string]

24.3.2.6 basic_­string modifiers [string.modifiers]

24.3.2.6.6 basic_­string​::​replace [string.replace]

basic_string& replace(size_type pos1, size_type n1, const basic_string& str);

Effects: Эквивалентен:return replace(pos1, n1, str.data(), str.size());

basic_string& replace(size_type pos1, size_type n1, const basic_string& str, size_type pos2, size_type n2 = npos);

Throws: out_­of_­range если pos1 > size() или pos2 > str.size().

Effects: Определяет эффективную длинуrlen вставляемой строки как меньшее из вызововn2 иstr.size() - pos2 и replace(pos1, n1, str.data() + pos2, rlen).

Returns: *this.

basic_string& replace(size_type pos1, size_type n1, basic_string_view<charT, traits> sv);

Effects: Эквивалентен:return replace(pos1, n1, sv.data(), sv.size());

template<class T> basic_string& replace(size_type pos1, size_type n1, const T& t, size_type pos2, size_type n2 = npos);

Throws: out_­of_­range если pos1 > size() или pos2 > sv.size().

Effects: Создает переменнуюsv, как будто bybasic_­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.

Returns: *this.

basic_string& replace(size_type pos1, size_type n1, const charT* s, size_type n2);

Requires:s указывает на массив, состоящий как минимум изn2 элементовcharT.

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.

Returns: *this.

basic_string& replace(size_type pos, size_type n, const charT* s);

Requires:s указывает на массив, состоящий как минимум из traits​::​length(s) + 1 элементовcharT.

Effects: Эквивалентен:return replace(pos, n, s, traits​::​length(s));

basic_string& replace(size_type pos1, size_type n1, size_type n2, charT c);

Effects: Эквивалентноreplace(pos1, n1, basic_­string(n2, c)).

Returns: *this.

basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str);

Requires: [begin(), i1) и[i1, i2) допустимые диапазоны.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, str).

Returns: *this.

basic_string& replace(const_iterator i1, const_iterator i2, basic_string_view<charT, traits> sv);

Requires: [begin(), i1) и[i1, i2) допустимые диапазоны.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, sv).

Returns: *this.

basic_string& replace(const_iterator i1, const_iterator i2, const charT* s, size_type n);

Requires:[begin(), i1) и[i1, i2) являются допустимыми диапазонами и s указывают на массив, состоящий как минимум изn элементовcharT.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, s, n).

Returns: *this.

basic_string& replace(const_iterator i1, const_iterator i2, const charT* s);

Requires:[begin(), i1) и[i1, i2) являются допустимыми диапазонами и s указывают на массив, состоящий как минимум изtraits​::​​length(s) + 1 элементовcharT.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, s, traits​::​length(s)).

Returns: *this.

basic_string& replace(const_iterator i1, const_iterator i2, size_type n, charT c);

Requires:[begin(), i1) и[i1, i2) допустимые диапазоны.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, basic_­string(n, c)).

Returns: *this.

template<class InputIterator> basic_string& replace(const_iterator i1, const_iterator i2, InputIterator j1, InputIterator j2);

Requires:[begin(), i1),[i1, i2) и[j1, j2) допустимые диапазоны.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, basic_­string(j1, j2, get_­allocator())).

Returns: *this.

basic_string& replace(const_iterator i1, const_iterator i2, initializer_list<charT> il);

Requires:[begin(), i1) и[i1, i2) допустимые диапазоны.

Effects: Звонкиreplace(i1 - begin(), i2 - i1, il.begin(), il.size()).

Returns: *this.