std::basic_string<CharT,Traits,Allocator>:: swap
|
void
swap
(
basic_string
&
other
)
;
|
(bis C++17) | |
|
void
swap
(
basic_string
&
other
)
noexcept
(
/* siehe unten */
)
;
|
(seit C++17)
(constexpr seit C++20) |
|
Tauscht den Inhalt des Strings mit dem von other aus. Alle Iteratoren und Referenzen können ungültig werden.
|
Falls
std::
allocator_traits
<
allocator_type
>
::
propagate_on_container_swap
::
value
|
(seit C++11) |
Inhaltsverzeichnis |
Parameter
| other | - | Zeichenkette, mit der die Inhalte ausgetauscht werden sollen |
Komplexität
Konstante.
Exceptions
|
Es wird keine Ausnahme ausgelöst. |
(until C++11) |
|
Es wird keine Ausnahme ausgelöst, es sei denn, das Verhalten ist undefiniert. Falls aus irgendeinem Grund eine Ausnahme ausgelöst wird, hat diese Funktion keine Wirkung ( strong exception safety guarantee ). |
(since C++11) |
|
noexcept
Spezifikation:
noexcept
(
std::
allocator_traits
<
Allocator
>
::
propagate_on_container_swap
::
value
||
std:: allocator_traits < Allocator > :: is_always_equal :: value ) |
(seit C++17) |
Beispiel
#include <iostream> #include <string> int main() { std::string a = "AAA"; std::string b = "BBBB"; std::cout << "Before swap:\n" "a = " << a << "\n" "b = " << b << "\n\n"; a.swap(b); std::cout << "After swap:\n" "a = " << a << "\n" "b = " << b << '\n'; }
Ausgabe:
Before swap: a = AAA b = BBBB After swap: a = BBBB b = AAA
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 403 | C++98 |
swap()
könnte eine Exception werfen
|
keine Exception wird geworfen |
| LWG 535 | C++98 | Das Vertauschen von Strings bewahrte die Zeichenreihenfolge nicht | Reihenfolgen werden ebenfalls bewahrt |
|
LWG 2151
( P1148R0 ) |
C++11 |
keine Exception wurde im Fall
ungleicher nicht-propagierender Allokatoren geworfen |
das Verhalten ist
in diesem Fall undefiniert |
Siehe auch
|
tauscht die Werte zweier Objekte
(Funktions-Template) |
|
|
tauscht zwei Bereiche von Elementen
(Funktions-Template) |
|
|
tauscht die Inhalte
(öffentliche Mitgliedsfunktion von
std::basic_string_view<CharT,Traits>
)
|