std::deque assign() method
- since C++11
- until C++11
// (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 has the same effect as overload (1) if
InputIt
is an integral type.This overload participates in overload resolution only if
InputIt
satisfiesLegacyInputIterator
.
(since C++11)
- (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(first, last)). - (3) Linear in
ilist.size()
- O(ilist.size()).
Exceptions
(none)
Examples
#include <deque>
#include <iostream>
#include <string>
int main()
{
std::deque<char> characters;
auto print_deque = [&](){
for (char c : characters)
std::cout << c << ' ';
std::cout << '\n';
};
characters.assign(5, 'a');
print_deque();
const std::string extra(6, 'b');
characters.assign(extra.begin(), extra.end());
print_deque();
characters.assign({'C', '+', '+', '1', '1'});
print_deque();
}
a a a a a
b b b b b b
C + + 1 1
Hover to see the original license.