std::basic_string<CharT,Traits,Allocator>::replace
basic_string& replace( size_type pos, size_type count, const basic_string& str ); |
(1) | (constexpr начиная с C++20) |
basic_string& replace( const_iterator first, const_iterator last, const basic_string& str ); |
(2) | (constexpr начиная с C++20) |
(3) | ||
basic_string& replace( size_type pos, size_type count, const basic_string& str, |
(до C++14) | |
basic_string& replace( size_type pos, size_type count, const basic_string& str, |
(начиная с C++14) (constexpr начиная с C++20) |
|
basic_string& replace( size_type pos, size_type count, const CharT* cstr, size_type count2 ); |
(4) | (constexpr начиная с C++20) |
basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr, size_type count2 ); |
(5) | (constexpr начиная с C++20) |
basic_string& replace( size_type pos, size_type count, const CharT* cstr ); |
(6) | (constexpr начиная с C++20) |
basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr ); |
(7) | (constexpr начиная с C++20) |
basic_string& replace( size_type pos, size_type count, size_type count2, CharT ch ); |
(8) | (constexpr начиная с C++20) |
basic_string& replace( const_iterator first, const_iterator last, size_type count2, CharT ch ); |
(9) | (constexpr начиная с C++20) |
template< class InputIt > basic_string& replace( const_iterator first, const_iterator last, |
(10) | (constexpr начиная с C++20) |
basic_string& replace( const_iterator first, const_iterator last, std::initializer_list<CharT> ilist ); |
(11) | (начиная с C++11) (constexpr начиная с C++20) |
template< class StringViewLike > basic_string& replace( size_type pos, size_type count, |
(12) | (начиная с C++17) (constexpr начиная с C++20) |
template< class StringViewLike > basic_string& replace( const_iterator first, const_iterator last, |
(13) | (начиная с C++17) (constexpr начиная с C++20) |
template< class StringViewLike > basic_string& replace( size_type pos, size_type count, |
(14) | (начиная с C++17) (constexpr начиная с C++20) |
Заменяет символы в диапазоне [
begin() + pos,
begin() + std::min(pos + count, size()))
или [
first,
last)
заданными символами.
[
cstr,
cstr + count2)
.[
cstr,
cstr + Traits::length(cstr))
.[
first2,
last2)
как если бы это было сделано с помощью replace(first, last, basic_string(first2, last2, get_allocator())).std::basic_string_view<CharT, Traits>> равно true и std::is_convertible_v<const StringViewLike&, const CharT*> равно false.
std::basic_string_view<CharT, Traits>> равно true и std::is_convertible_v<const StringViewLike&, const CharT*> равно false.
Если [
begin(),
first)
или [
first,
last)
не является действительным диапазоном, поведение не определено.
Содержание |
[править] Параметры
pos | — | начало подстроки, которая будет заменена |
count | — | длина подстроки, которая будет заменена |
first, last | — | диапазон символов, которые будут заменены |
str | — | строка, используемая для замены |
pos2 | — | начало подстроки, на которую необходимо заменить |
count2 | — | количество символов для замены |
cstr | — | указатель на строку символов, которую следует использовать для замены |
ch | — | значение символа, используемое для замены |
first2, last2 | — | диапазон символов, используемых для замены |
ilist | — | список инициализаторов с символами, которые будут использоваться для замены |
t | — | объект (конвертируемый в std::basic_string_view) с символами, которые будут использоваться для замены |
Требования к типам | ||
-InputIt должен соответствовать требованиям LegacyInputIterator.
|
[править] Возвращаемое значение
*this.
[править] Исключения
Если операция приведёт к size
() >
max_size
(), генерирует std::length_error.
Если по какой-либо причине генерируется исключение, эти функции не имеют эффекта (строгая гарантия безопасности исключений).
[править] Пример
Этот раздел не завершён Причина: нет примера |
[править] Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 847 | C++98 | не было гарантии безопасности исключений | добавлена надёжная гарантия безопасности исключений |
LWG 1323 | C++98 | типы first и last были iterator
|
изменено на const_iterator
|
LWG 2946 | C++17 | перегрузки (12,13) в некоторых случаях вызывали двусмысленность |
исправлено, сделав их шаблонами |
[править] Смотрите также
(C++23) |
заменяет указанную часть строки диапазоном символов (public функция-элемент) |
(C++11) |
заменяет вхождения регулярного выражения форматированным замещающим текстом (шаблон функции) |
заменяет другим значением все значения, соответствующие определённым критериям (шаблон функции) |