# std::vector<T,Allocator>::assign

From cppreference.com
< cpp‎ | container‎ | vector

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 `InputIt` is an integral type. | (until C++11)
This overload only participates in overload resolution if `InputIt` satisfies 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::vector <char>:

Run this code

    #include <vector>
    #include <iostream>

    int main()
    {
        std::vector<char> characters;

        characters.assign(5, 'a');

        for (char c : characters) {
            std::cout << c << '\n';
        }

        return 0;
    }

Output:

    a
    a
    a
    a
    a

### See also

(constructor) | constructs the `vector` (public member function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/vector/assign&oldid=50800"