Przestrzenie nazw
Warianty

std::vector::swap

Z cppreference.com
<tbody> </tbody>
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) [edit]

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
Morty Proxy This is a proxified and sanitized view of the page, visit original site.