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-функция-член) |