std::vector assign() method
- od C++20
- od C++11
- do 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
.- od C++11
- do 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
.
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
#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();
}
a a a a a
b b b b b b
C + + 1 1
Hover to see the original license.