CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 30 Jul 2025 22:54:25 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/deque/deque/swap/
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 30 Jul 2025 22:54:26 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"7f86-RSxOlUIYvRp7D3fq7MQjb5L2jZE"
Content-Encoding: gzip
Exchanges the content of the container by the content of x, which is another deque object containing elements of the same type. Sizes may differ.
After the call to this member function, the elements in this container are those which were in x before the call, and the elements of x are those which were in this. All iterators, references and pointers remain valid for the swapped objects.
Notice that a non-member function exists with the same name, swap, overloading that algorithm with an optimization that behaves like this member function.
Output:
Note that the end iterators do not refer to elements and may be invalidated.
No contained elements are accessed by the call (although see iterator validity above).
Otherwise, it causes undefined behavior.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
deque
- deque::~deque
- deque::deque
member functions
- deque::assign
- deque::at
- deque::back
- deque::begin
-
deque::cbeginC++11
-
deque::cendC++11
- deque::clear
-
deque::crbeginC++11
-
deque::crendC++11
-
deque::emplaceC++11
-
deque::emplace_backC++11
-
deque::emplace_frontC++11
- deque::empty
- deque::end
- deque::erase
- deque::front
- deque::get_allocator
- deque::insert
- deque::max_size
- deque::operator[]
- deque::operator=
- deque::pop_back
- deque::pop_front
- deque::push_back
- deque::push_front
- deque::rbegin
- deque::rend
- deque::resize
-
deque::shrink_to_fitC++11
- deque::size
- deque::swap
non-member overloads
public member function
<deque>
std::deque::swap
void swap (deque& x);
Swap content
After the call to this member function, the elements in this container are those which were in x before the call, and the elements of x are those which were in this. All iterators, references and pointers remain valid for the swapped objects.
Notice that a non-member function exists with the same name, swap, overloading that algorithm with an optimization that behaves like this member function.
No specifics on allocators. [contradictory specifications]
Whether the container allocators are also swapped is not defined, unless in the case the appropriate allocator trait indicates explicitly that they shall propagate.
Parameters
- x
- Another deque container of the same type (i.e., instantiated with the same template parameters, T and Alloc) whose content is swapped with that of this container.
Return value
noneExample
|
|
Output:
foo contains: 200 200 200 200 200 bar contains: 100 100 100 |
Complexity
Constant.Iterator validity
All iterators, pointers and references referring to elements in both containers remain valid, and are now referring to the same elements they referred to before the call, but in the other container, where they now iterate.Note that the end iterators do not refer to elements and may be invalidated.
Data races
Both the container and x are modified.No contained elements are accessed by the call (although see iterator validity above).
Exception safety
If the allocators in both containers compare equal, or if their allocator traits indicate that the allocators shall propagate, the function never throws exceptions (no-throw guarantee).Otherwise, it causes undefined behavior.
See also
- swap (deque)
- Exchanges the contents of two deque containers (function template)
- swap_ranges
- Exchange values of two ranges (function template)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us