Namespaces
Variants

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

От ru.cppreference.net

 
 
 
 
void assign( size_type count, const T& value );
(1) (начиная с C++26)
template< class InputIt >
void assign( InputIt first, InputIt last );
(2) (начиная с C++26)
void assign( std::initializer_list<T> ilist );
(3) (начиная с C++11)

Заменяет содержимое контейнера.

1) Заменяет содержимое count копиями значения value.
2) Заменяет содержимое копиями элементов из диапазона [first, last).
Если какой-либо из аргументов является итератором в *this, поведение не определено. Эта перегрузка участвует в разрешении перегрузки только если InputIt удовлетворяет LegacyInputIterator.
3) Заменяет содержимое элементами из ilist.


Параметры

count - новый размер контейнера
value - значение для инициализации элементов контейнера
first, last - пара итераторов, определяющая исходный диапазон копируемых элементов
ilist - std::initializer_list, из которого копируются значения

Сложность

1) Линейная от count.
2) Линейная от расстояния между first и last.
3) Линейная от ilist.size().

Пример

Следующий код использует assign для добавления нескольких символов в 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();
}

Вывод:

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

Смотрите также

назначает диапазон значений контейнеру
(public-функция-член)
назначает значения контейнеру
(public-функция-член)