std::basic_string<CharT,Traits,Allocator>::replace
| basic_string& replace( size_type pos, size_type count, const basic_string& str ); |
(1) | (constexpr seit C++20) |
| basic_string& replace( const_iterator first, const_iterator last, const basic_string& str ); |
(2) | (constexpr seit C++20) |
| (3) | ||
basic_string& replace( size_type pos, size_type count, const basic_string& str, |
(bis C++14) | |
| basic_string& replace( size_type pos, size_type count, const basic_string& str, |
(seit C++14) (constexpr seit C++20) |
|
| basic_string& replace( size_type pos, size_type count, const CharT* cstr, size_type count2 ); |
(4) | (constexpr seit C++20) |
| basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr, size_type count2 ); |
(5) | (constexpr seit C++20) |
| basic_string& replace( size_type pos, size_type count, const CharT* cstr ); |
(6) | (constexpr seit C++20) |
| basic_string& replace( const_iterator first, const_iterator last, const CharT* cstr ); |
(7) | (constexpr seit C++20) |
| basic_string& replace( size_type pos, size_type count, size_type count2, CharT ch ); |
(8) | (constexpr seit C++20) |
| basic_string& replace( const_iterator first, const_iterator last, size_type count2, CharT ch ); |
(9) | (constexpr seit C++20) |
| template< class InputIt > basic_string& replace( const_iterator first, const_iterator last, |
(10) | (constexpr seit C++20) |
| basic_string& replace( const_iterator first, const_iterator last, std::initializer_list<CharT> ilist ); |
(11) | (seit C++11) (constexpr seit C++20) |
| template< class StringViewLike > basic_string& replace( size_type pos, size_type count, |
(12) | (seit C++17) (constexpr seit C++20) |
| template< class StringViewLike > basic_string& replace( const_iterator first, const_iterator last, |
(13) | (seit C++17) (constexpr seit C++20) |
| template< class StringViewLike > basic_string& replace( size_type pos, size_type count, |
(14) | (seit C++17) (constexpr seit C++20) |
Ersetzt die Zeichen im Bereich [begin() + pos, begin() + std::min(pos + count, size())) oder [first, last) durch gegebene Zeichen.
[pos2, std::min(pos2 + count2, str.size())) von str ersetzt.[cstr, cstr + count2) ersetzt.[cstr, cstr + count2) kein gültiger Bereich ist, ist das Verhalten undefiniert.[cstr, cstr + Traits::length(cstr)) ersetzt.[first2, last2) ersetzt, als ob durch replace(first, last, basic_string(first2, last2, get_allocator())).std::basic_string_view<CharT, Traits>> true ist und std::is_convertible_v<const StringViewLike&, const CharT*> false ist.
std::basic_string_view<CharT, Traits>> true ist und std::is_convertible_v<const StringViewLike&, const CharT*> false ist.
Wenn [begin(), first) oder [first, last) kein gültiger Bereich ist, ist das Verhalten undefiniert.
Inhalt |
[edit] Parameter
| pos | - | Start des zu ersetzenden Teilstrings |
| zählt | - | Länge des zu ersetzenden Teilstrings |
| first, last | - | Bereich von Zeichen, der ersetzt werden soll |
| str | - | String, der für den Ersatz verwendet werden soll |
| pos2 | - | Start des zu ersetzenden Teilstrings |
| count2 | - | Anzahl der zu ersetzenden Zeichen |
| cstr | - | Zeiger auf den Zeichenstring, der für den Ersatz verwendet werden soll |
| ch | - | Zeichenwert, der für den Ersatz verwendet werden soll |
| first2, last2 | - | Bereich von Zeichen, der für den Ersatz verwendet werden soll |
| ilist | - | Initialisierungsliste mit den zu verwendenden Zeichen für den Ersatz |
| t | - | Objekt (konvertierbar zu std::basic_string_view) mit den zu verwendenden Zeichen für den Ersatz |
| Typanforderungen | ||
-InputIt muss die Anforderungen von LegacyInputIterator erfüllen. | ||
[edit] Rückgabewert
*this.
[edit] Ausnahmen
Wenn die Operation dazu führen würde, dass size() max_size() überschreitet, wird std::length_error ausgelöst.
Wenn aus irgendeinem Grund eine Ausnahme ausgelöst wird, haben diese Funktionen keine Auswirkungen (starke Ausnahme-Sicherheitsgarantie).
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 847 | C++98 | Es gab keine Ausnahmesicherheitsgarantie | starke Ausnahmesicherheitsgarantie hinzugefügt |
| LWG 1323 | C++98 | die Typen von first und last waren iterator |
geändert zu const_iterator |
| LWG 2946 | C++17 | Überladungen (12,13) verursachten in einigen Fällen Mehrdeutigkeit | vermieden, indem sie zu Templates gemacht wurden |
[edit] Siehe auch
| (C++23) |
ersetzt einen angegebenen Teil eines Strings durch einen Zeichenbereich (öffentliche Memberfunktion) |
| (C++11) |
ersetzt Vorkommen eines regulären Ausdrucks durch formatierten Ersetzungstext (Funktionsvorlage) |
| Ersetzt alle Werte, die bestimmte Kriterien erfüllen, durch einen anderen Wert (Funktionstempelat) |