GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::vector::swap(3) C++ Standard Libary std::vector::swap(3)

std::vector::swap - std::vector::swap


void swap( vector& other ); (until C++17)
void swap( vector& other ) noexcept(/* see below */); (since C++17)
(until C++20)
constexpr void swap( vector& other ) noexcept(/* see below */); (since C++20)


Exchanges the contents of the container with those of other. Does not invoke any
move, copy, or swap operations on individual elements.


All iterators and references remain valid. The past-the-end iterator is invalidated.


If std::allocator_traits<allocator_type>::propagate_on_container_swap::value
is true, then the allocators are exchanged using an unqualified call to (since
non-member swap. Otherwise, they are not swapped (and if get_allocator() != C++11)
other.get_allocator(), the behavior is undefined).


other - container to exchange the contents with


(none)


(none) (until
C++17)
noexcept specification: (since
noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value C++17)
|| std::allocator_traits<Allocator>::is_always_equal::value)


Constant.

// Run this code


#include <iostream>
#include <vector>


template<class Os, class Co> Os& operator<<(Os& os, const Co& co) {
os << "{";
for (auto const& i : co) { os << ' ' << i; }
return os << " } ";
}


int main()
{
std::vector<int> a1{1, 2, 3}, a2{4, 5};


auto it1 = std::next(a1.begin());
auto it2 = std::next(a2.begin());


int& ref1 = a1.front();
int& ref2 = a2.front();


std::cout << a1 << a2 << *it1 << ' ' << *it2 << ' ' << ref1 << ' ' << ref2 << '\n';
a1.swap(a2);
std::cout << a1 << a2 << *it1 << ' ' << *it2 << ' ' << ref1 << ' ' << ref2 << '\n';


// Note that after swap the iterators and references stay associated with their
// original elements, e.g. it1 that pointed to an element in 'a1' with value 2
// still points to the same element, though this element was moved into 'a2'.
}


{ 1 2 3 } { 4 5 } 2 5 1 4
{ 4 5 } { 1 2 3 } 2 5 1 4


std::swap(std::vector) specializes the std::swap algorithm
(function template)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.