Namespaces
Variants
Views
Actions

std::basic_string::swap

From cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
void swap( basic_string& other );
(until C++17)
void swap( basic_string& other ) noexcept(/* see below */);
(since C++17)

Exchanges the contents of the string with those of other. All iterators and references may be invalidated.

The behavior is undefined if Allocator does not propagate on swap and the allocators of *this and other are unequal.

(since C++11)

Contents

[edit] Parameters

other - string to exchange the contents with

[edit] Return value

(none)

Exceptions

noexcept specification:  
noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value
|| std::allocator_traits<Allocator>::is_always_equal::value)
(since C++17)

[edit] Example

#include <string>
#include <iostream>
 
int main() 
{
    std::string a = "AAA";
    std::string b = "BBB";
 
    std::cout << "before swap" << '\n';
    std::cout << "a: " << a << '\n';
    std::cout << "b: " << b << '\n';
 
    a.swap(b);
 
    std::cout << "after swap" << '\n';
    std::cout << "a: " << a << '\n';
    std::cout << "b: " << b << '\n';
}

Output:

before swap
a: AAA
b: BBB
after swap
a: BBB
b: AAA

[edit] Complexity

Constant.