std::deque<T,Allocator>::assign
| void assign( size_type count, const T& value ); | (1) | |
| template< class InputIt > void assign( InputIt first, InputIt last ); | (2) | |
| void assign( std::initializer_list<T> ilist ); | (3) | (since C++11) | 
Replaces the contents of the container.
1) Replaces the contents with 
 count copies of value value
2) Replaces the contents with copies of those in the range  
 [first, last). | This overload has the same effect as overload (1) if InputItis an integral type. | (until C++11) | 
| This overload only participates in overload resolution if InputItsatisfies LegacyInputIterator. | (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 container | 
| value | - | the value to initialize elements of the container with | 
| first, last | - | the range to copy the elements from | 
| ilist | - | initializer list to copy the values from | 
Complexity
1) Linear in 
 count
2) Linear in distance between 
 first and last
3) Linear in 
 ilist.size()
Example
The following code uses assign to add several characters to a std::deque<char>:
#include <deque>
#include <iostream>
 
int main()
{
    std::deque<char> characters;
 
    characters.assign(5, 'a');
 
    for (char c : characters) {
        std::cout << c << '\n';
    } 
 
    return 0;
}Output:
a a a a a
See also
| constructs the deque(public member function) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/container/deque/assign