std::vector::swap
Z cppreference.com
void swap( vector& other ); |
||
Zamienia ze sobą zawartość tego kontenera i other. Nie wywołuje żadnych operacji kopiowania, przenoszenia ani zamiany na poszczególnych elementach.
Wszystkie iteratory i referencje pozostają prawidłowe. Iterator zakońcowy zostaje unieważniony.
Jeśli std::allocator_traits<allocator_type>::propagate_on_container_swap::value jest true, alokatory są ze sobą zamieniane [todo: przetłumaczyć] using an unqualified call to non-member swap. W przeciwnym wypadku nie są zamieniane (i jeśli get_allocator() != other.get_allocator(), zachowanie jest niezdefiniowane). |
(od C++11) |
Parametry
| other | - | kontener, z którym zostanie wymieniona zawartość |
Zwracana wartość
(brak)
Wyjątki
|
(brak) |
Złożoność
Stała.
Zobacz także
| specjalizacja dla algorytmu std::swap (szablon funkcji) |
Przyklad
#include <vector>
#include <iostream>
void printVector(std::vector<int>& vec)
{
for (int a : vec)
{
std::cout << a << " ";
}
}
int main()
{
std::vector<int> v1{1, 2, 3};
std::vector<int> v2{7, 8, 9};
std::cout << "v1: ";
printVector(v1);
std::cout << "\nv2: ";
printVector(v2);
std::cout << "\n-- SWAP\n";
v2.swap(v1);
std::cout << "v1: ";
printVector(v1);
std::cout << "\nv2: ";
printVector(v2);
}
Wynik:
v1: 1 2 3
v2: 7 8 9
-- SWAP
v1: 7 8 9
v2: 1 2 3