Przestrzenie nazw
Warianty
Działania

std::vector::swap

Z cppreference.com
< cpp‎ | container‎ | vector
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)

Spis treści

[edytuj] Parametry

other - kontener, z którym zostanie wymieniona zawartość

[edytuj] Zwracana wartość

(brak)

[edytuj] Wyjątki

(brak)

[edytuj] Złożoność

Stała.

[edytuj] Zobacz także

specjalizacja dla algorytmu std::swap
(szablon funkcji) [edit]

[edytuj] 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