std::vector<bool,Allocator>::swap
Определён в заголовочном файле <vector> | ||
|---|---|---|
static void swap( reference x, reference y ); | (constexpr since C++20) |
Меняет местами содержимое x и y, как если бы был вызван bool b = x; x = y; y = b;.
Параметры
| x | - |
std::vector<bool>::reference значение, которое нужно поменять местами с y |
| y | - |
std::vector<bool>::reference значение, которое нужно поменять местами с x |
Возвращаемое значение
(нет)
Сложность
Постоянная.
Пример
#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);
}
Вывод:
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
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| DR | Применён к | Поведение согласно опубликованному стандарту | Корректное поведение |
|---|---|---|---|
| LWG 814 | C++98 | описание этой функции-члена отсутствовало | добавлено |
См. также
| класс-прокси, представляющий ссылку на отдельный bool (класс) |
|
| меняет местами содержимое (открытая функция-член std::vector<T,Allocator>) |
|
специализирует алгоритм std::swap (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/vector_bool/swap