A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/vector/vector-bool/swap/ below:

public member function

<vector>

std::vector<bool>::swap swap containers (1)
void swap (vector& x);
swap elements (2)
static void swap (reference ref1, reference ref2);
swap containers (1)
void swap (vector& x);
swap elements (2)
static void swap (reference ref1, reference ref2) noexcept;

Swap containers or elements

The first signature is the same as described in vector::swap (see vector::swap for more info).

A static signature to swap individual elements (bits) is added on vector<bool>.



Parameters
x
Another vector<bool> container. Sizes may differ.
ref1, ref2
References to elements.
reference is a member type that accesses individual elements while providing an interface that simulates a reference to bool (see reference for more info).

Return value none

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// vector<bool>::swap
#include <iostream>
#include <vector>

int main ()
{
  std::vector<bool> foo;
  std::vector<bool> bar;

  foo.push_back(false);
  foo.push_back(true);
  foo.push_back(false);

  bar.push_back(true);
  bar.push_back(false);

  foo.swap (foo[0], foo[1]);
  bar.swap (bar.front(), bar.back());

  foo.swap(bar);

  std::cout << std::boolalpha;
  std::cout << "foo contains:";
  for (unsigned i=0; i<foo.size(); i++) std::cout << ' ' << foo[i];
  std::cout << "\nbar contains:";
  for (unsigned i=0; i<bar.size(); i++) std::cout << ' ' << bar[i];
  std::cout << '\n';

  return 0;
}

Output:
foo contains: false true
bar contains: true false false


Complexity Constant.

Data races For (1), both containers are modified.
For (2), elements are modified: in bool vectors there are no guarantees on whether concurrently accessing other elements is safe.

Exception safety For (1), see vector::swap.
For (2), it never throws exceptions (no-throw guarantee).

See also
vector<bool>::reference
Reference type (public member class)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4