CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 19 Jul 2025 10:40:08 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/deque/deque/resize/
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 19 Jul 2025 10:40:09 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8389-El3L1gGIbxRkzyjDkRon7+TTHxQ"
Content-Encoding: gzip
Resizes the container so that it contains n elements.
If n is smaller than the current container size, the content is reduced to its first n elements, removing those beyond (and destroying them).
If n is greater than the current container size, the content is expanded by inserting at the end as many elements as needed to reach a size of n. If val is specified, the new elements are initialized as copies of val, otherwise, they are value-initialized.
Notice that this function changes the actual content of the container by inserting or erasing elements from it.
In case of growth, the storage for the new elements is allocated using the container's allocator, which may throw exceptions on failure (for the default allocator, bad_alloc is thrown if the allocation request does not succeed).
The code sets a sequence of 9 numbers as the initial content for mydeque. It then uses resize first to set the container size to 5, then to extend its size to 8 with values of 100 for its new elements, and finally it extends its size to 12 with their default values (for int elements this is zero). Output:
If the container expands, all iterators are invalidated, but existing pointers and references remain valid, referring to the same elements they were referring to before.
Removed elements are modified (see iterator validity above).
Otherwise, if an exception is thrown, the container is left with a valid state (basic guarantee): Constructing elements or allocating storage may throw.
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::resize
void resize (size_type n, value_type val = value_type());
void resize (size_type n);void resize (size_type n, const value_type& val);
Change size
If n is smaller than the current container size, the content is reduced to its first n elements, removing those beyond (and destroying them).
If n is greater than the current container size, the content is expanded by inserting at the end as many elements as needed to reach a size of n. If val is specified, the new elements are initialized as copies of val, otherwise, they are value-initialized.
Notice that this function changes the actual content of the container by inserting or erasing elements from it.
Parameters
- n
- New container size, expressed in number of elements.
Member type size_type is an unsigned integral type. - val
- Object whose content is copied to the added elements in case that n is greater than the current container size.
If not specified, the default constructor is used instead.
Member type value_type is the type of the elements in the container, defined in deque as an alias of the first template parameter (T).
Return Value
noneIn case of growth, the storage for the new elements is allocated using the container's allocator, which may throw exceptions on failure (for the default allocator, bad_alloc is thrown if the allocation request does not succeed).
Example
|
|
The code sets a sequence of 9 numbers as the initial content for mydeque. It then uses resize first to set the container size to 5, then to extend its size to 8 with values of 100 for its new elements, and finally it extends its size to 12 with their default values (for int elements this is zero). Output:
mydeque contains: 1 2 3 4 5 100 100 100 0 0 0 0 |
Complexity
Linear on the number of elements inserted/erased (constructions/destructions).Iterator validity
In case the container shrinks, all iterators, pointers and references to elements that have not been removed remain valid after the resize and refer to the same elements they were referring to before the call.If the container expands, all iterators are invalidated, but existing pointers and references remain valid, referring to the same elements they were referring to before.
Data races
The container is modified.Removed elements are modified (see iterator validity above).
Exception safety
If n is less than or equal to the size of the container, the function never throws exceptions (no-throw guarantee).Otherwise, if an exception is thrown, the container is left with a valid state (basic guarantee): Constructing elements or allocating storage may throw.
See also
- deque::size
- Return size (public member function)
- deque::clear
- Clear content (public member function)
- deque::erase
- Erase elements (public member function)
- deque::max_size
- Return maximum size (public member function)
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