Espacios de nombres
Variantes

std::basic_string::swap

De cppreference.com
 
 
 
std::basic_string
 
<tbody> </tbody> <tbody class="t-dcl-rev "> </tbody><tbody> </tbody>
void swap( basic_string& other );
(hasta C++17)
void swap( basic_string& other ) noexcept(/* véase abajo */);
(desde C++17)
(hasta C++20)
constexpr void swap( basic_string& other ) noexcept(/* véase abajo */);
(desde C++20)

Intercambia el contenido de la cadena con los de other. Todos los iteradores y referencias siguen siendo válidas.

El comportamiento está indefinido si Allocator no se propaga durante el intercambio y los asignadores de *this y de other no se comparan como iguales.

(desde C++11)

Parámetros

other - La cadena con la cual intercambiar el contenido.

Valor de retorno

(Ninguno)

Complejidad

Constante.

Excepciones

Especificación noexcept:   (desde C++11)
<tbody> </tbody>
noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value || std::allocator_traits<Allocator>::is_always_equal::value)
(desde C++17)

Ejemplo

#include <string>
#include <iostream>

int main() 
{
    std::string a = "AAA";
    std::string b = "BBB";

    std::cout << "antes del intercambio" << '\n';
    std::cout << "a: " << a << '\n';
    std::cout << "b: " << b << '\n';

    a.swap(b);

    std::cout << "despues del intercambio" << '\n';
    std::cout << "a: " << a << '\n';
    std::cout << "b: " << b << '\n';
}

Salida:

antes del intercambio
a: AAA
b: BBB
despues del intercambio
a: BBB
b: AAA