table of contents
std::vector::swap(3) | C++ Standard Libary | std::vector::swap(3) |
NAME¶
std::vector::swap - std::vector::swap
Synopsis¶
Defined in header <vector>
static void swap( reference x, reference y ); (until C++20)
constexpr static void swap( reference x, reference y ); (since
C++20)
Swaps the contents of x and y as if by bool b = x; x = y; y = b;.
Parameters¶
x - std::vector<bool>::reference value to swap with y
y - std::vector<bool>::reference value to swap with x
Return value¶
(none)
Complexity¶
Constant.
Example¶
// Run this code
#include <iostream>
#include <vector>
void println(std::string_view fmt, std::vector<bool> const& vb =
{})
{
for (std::cout << fmt; bool const e : vb)
std::cout << e << ' ';
std::cout << '\n';
}
int main()
{
println("swap elements of the same vector:");
std::vector<bool> x{1, 0};
println("before swap, x: ", x);
x.swap(x[0], x[1]); // same as std::vector<bool>::swap(x[0], x[1]);
println("after swap, x: ", x);
println("swap elements of two different vectors:");
std::vector<bool> y{0, 0, 1};
println("before swap, x: ", x);
println("before swap, y: ", y);
y.swap(x[0], y[2]); // same as std::vector<bool>::swap(x[0], y[2]);
println("after swap, x: ", x);
println("after swap, y: ", y);
}
Output:¶
swap elements of the same vector:
before swap, x: 1 0
after swap, x: 0 1
swap elements of two different vectors:
before swap, x: 0 1
before swap, y: 0 0 1
after swap, x: 1 1
after swap, y: 0 0 0
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 814 C++98 the description of this member function was added
missing
See also¶
reference proxy class representing a reference to a single bool
(class)
swap swaps the contents
(public member function of std::vector<T,Allocator>)
std::swap(std::vector) specializes the std::swap algorithm
(function template)
2024.06.10 | http://cppreference.com |