CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 19 Jul 2025 10:30:10 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/vector/vector/assign/
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 19 Jul 2025 10:30:11 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"8c93-5Q9j4UC+PILb/qUW3akdcFzt1eg"
Content-Encoding: gzip
Assigns new contents to the vector, replacing its current contents, and modifying its size accordingly.
Any elements held in the container before the call are destroyed and replaced by newly constructed elements (no assignments of elements take place).
This causes an automatic reallocation of the allocated storage space if -and only if- the new vector size surpasses the current vector capacity.
Output:
Additionally, in the range version (1), if InputIterator is not at least of a forward iterator category (i.e., it is just an input iterator) the new capacity cannot be determined beforehand and the operation incurs in additional logarithmic complexity in the new size (reallocations while growing).
The container is modified.
All contained elements are modified.
If allocator_traits::construct is not supported with the appropriate arguments for the element constructions, or if the range specified by [first,last) is not valid, 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>
vector
- vector::~vector
- vector::vector
member functions
- vector::assign
- vector::at
- vector::back
- vector::begin
- vector::capacity
-
vector::cbeginC++11
-
vector::cendC++11
- vector::clear
-
vector::crbeginC++11
-
vector::crendC++11
-
vector::dataC++11
-
vector::emplaceC++11
-
vector::emplace_backC++11
- vector::empty
- vector::end
- vector::erase
- vector::front
- vector::get_allocator
- vector::insert
- vector::max_size
- vector::operator[]
- vector::operator=
- vector::pop_back
- vector::push_back
- vector::rbegin
- vector::rend
- vector::reserve
- vector::resize
-
vector::shrink_to_fitC++11
- vector::size
- vector::swap
non-member overloads
public member function
<vector>
std::vector::assign
range (1) | template <class InputIterator> void assign (InputIterator first, InputIterator last); |
---|---|
fill (2) | void assign (size_type n, const value_type& val); |
range (1) | template <class InputIterator> void assign (InputIterator first, InputIterator last); |
---|---|
fill (2) | void assign (size_type n, const value_type& val); |
initializer list (3) | void assign (initializer_list<value_type> il); |
Assign vector content
In the range version (1), the new contents are elements constructed from each of the elements in the range between first and last, in the same order.
In the fill version (2), the new contents are n elements, each initialized to a copy of val.
If a reallocation happens,the storage needed is allocated using the internal allocator.
In the fill version (2), the new contents are n elements, each initialized to a copy of val.
If a reallocation happens,the storage needed is allocated using the internal allocator.
In the range version (1), the new contents are elements constructed from each of the elements in the range between first and last, in the same order.
In the fill version (2), the new contents are n elements, each initialized to a copy of val.
In the initializer list version (3), the new contents are copies of the values passed as initializer list, in the same order.
The internal allocator is used (through its traits) to allocate and deallocate storage if a reallocation happens. It is also used to destroy all existing elements, and to construct the new ones.
In the fill version (2), the new contents are n elements, each initialized to a copy of val.
In the initializer list version (3), the new contents are copies of the values passed as initializer list, in the same order.
The internal allocator is used (through its traits) to allocate and deallocate storage if a reallocation happens. It is also used to destroy all existing elements, and to construct the new ones.
Any elements held in the container before the call are destroyed and replaced by newly constructed elements (no assignments of elements take place).
This causes an automatic reallocation of the allocated storage space if -and only if- the new vector size surpasses the current vector capacity.
Parameters
- first, last
- Input iterators to the initial and final positions in a sequence. The range used is [first,last), which includes all the elements between first and last, including the element pointed by first but not the element pointed by last.
The function template argument InputIterator shall be an input iterator type that points to elements of a type from which value_type objects can be constructed. - n
- New size for the container.
Member type size_type is an unsigned integral type. - val
- Value to fill the container with. Each of the n elements in the container will be initialized to a copy of this value.
Member type value_type is the type of the elements in the container, defined in vector as an alias of its first template parameter (T). - il
- An initializer_list object. The compiler will automatically construct such objects from initializer list declarators.
Member type value_type is the type of the elements in the container, defined in vector as an alias of its first template parameter (T).
Return value
noneExample
|
|
Size of first: 7 Size of second: 5 Size of third: 3 |
Complexity
Linear on initial and final sizes (destructions, constructions).Additionally, in the range version (1), if InputIterator is not at least of a forward iterator category (i.e., it is just an input iterator) the new capacity cannot be determined beforehand and the operation incurs in additional logarithmic complexity in the new size (reallocations while growing).
Iterator validity
All iterators, pointers and references related to this container are invalidated.Data races
All copied elements are accessed.The container is modified.
All contained elements are modified.
Exception safety
Basic guarantee: if an exception is thrown, the container is in a valid state.If allocator_traits::construct is not supported with the appropriate arguments for the element constructions, or if the range specified by [first,last) is not valid, it causes undefined behavior.
See also
- vector::operator=
- Assign content (public member function)
- vector::resize
- Change 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