std::pair<T1,T2>::swap
 void swap(pair& other) noexcept(/* see below */);  |   (since C++11)  (until C++20)  |  |
 constexpr void swap(pair& other) noexcept(/* see below */);  |  (since C++20) | 
Swaps first with other.first and second with other.second.
Parameters
| other | - | pair of values to swap | 
Return value
(none).
Exceptions
 noexcept specification: noexcept(  noexcept(swap(first, other.first)) && noexcept(swap(second, other.second))  )In the expression above, the identifier   |  (until C++17) | 
 noexcept specification: noexcept( |  (since C++17) | 
Example
#include <iostream>
#include <utility>
#include <string>
int main()
{
    std::pair<int, std::string> p1, p2;
    p1 = std::make_pair(10, "test");
    p2.swap(p1);
    std::cout << "(" << p2.first << ", " << p2.second << ")\n";
}Output:
(10, test)
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior | 
|---|---|---|---|
| LWG 2456 | C++11 |  the noexcept specification is ill-formed  |  made to work | 
See also
|  swaps the values of two objects  (function template)  | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/utility/pair/swap