std::vector assign() method
- since C++20
- since C++11
- until C++11
// (1) Non const version only
constexpr void assign( size_type count, const T& value );
// (2) Non const version only
template< class InputIt >
constexpr void assign( InputIt first, InputIt last );
// (3) Non const version only
constexpr void assign( std::initializer_list<T> ilist );
// (1) Non const version only
void assign( size_type count, const T& value );
// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );
// (3) Non const version only
void assign( std::initializer_list<T> ilist );
// (1) Non const version only
void assign( size_type count, const T& value );
// (2) Non const version only
template< class InputIt >
void assign( InputIt first, InputIt last );
Replaces the contents of the container with the contents of another.
-
(1) Replaces the contents with
count
copies of valuevalue
. -
(2) Replaces the contents with copies of those in the range [ first, last ).
Undefined BehaviorThe behavior is undefined if either argument is an iterator into
*this
.- since C++11
- until C++11
This overload participates in overload resolution only if
InputIt
satisfiesLegacyInputIterator
.This overload has the same effect as overload (1) if
InputIt
is an integral type. -
(3) Replaces the contents with the elements from the initializer list
ilist
.
Invalidation
All iterators, pointers and references to the elements of the container are invalidated.
The past-the-end iterator is also invalidated.
Parameters
count
- the new size of the containervalue
- the value to initialize elements of the container withfirst
,last
- the range to copy the elements fromilist
- initializer list to copy the values from
Return value
(none)
Complexity
- (1) Linear in count - O(count).
- (2) Linear in distance between
first
andlast
- O(std::distance(firs,t last)). - (3) Linear in
ilist.size()
- O(ilist.size()).
Exceptions
(none)
Examples
Main.cpp
#include <vector>
#include <iostream>
#include <string>
int main()
{
std::vector<char> characters;
auto print_vector = [&](){
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};
characters.assign(5, 'a');
print_vector();
const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_vector();
characters.assign({'C', '+', '+', '1', '1'});
print_vector();
}
Output
a a a a a
b b b b b b
C + + 1 1
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.
Hover to see the original license.