Namespaces
Variants

std::hive<T,Allocator>::assign

From cppreference.net

 
 
 
 
void assign( size_type count, const T& value );
(1) (since C++26)
template< class InputIt >
void assign( InputIt first, InputIt last );
(2) (since C++26)
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).
If either argument is an iterator into *this, the behavior is undefined. This overload participates in overload resolution only if InputIt satisfies LegacyInputIterator.
3) Replaces the contents with the elements from ilist.


Parameters

count - the new size of the container
value - the value to initialize elements of the container with
first, last - the pair of iterators defining the source range of elements to copy
ilist - std::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::hive<char>:

#include <hive>
#include <iostream>
#include <string>

int main()
{
    std::hive<char> characters;
    
    auto print_hive = [&]()
    {
        for (char c : characters)
            std::cout << c << ' ';
        std::cout << '\n';
    };
    
    characters.assign(5, 'a');
    print_hive();
    
    const std::string extra(6, 'b');
    characters.assign(extra.begin(), extra.end());
    print_hive();
    
    characters.assign({'C', '+', '+', '2', '6'});
    print_hive();
}

Output:

a a a a a
b b b b b b
C + + 2 6

See also

assigns a range of values to the container
(public member function)
assigns values to the container
(public member function)