std::hive<T,Allocator>::assign
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++26) |
Заменяет содержимое контейнера.
1) Заменяет содержимое
count копиями значения value.
2) Заменяет содержимое копиями элементов диапазона
[first, last).Если хотя бы один аргумент является итератором в *this, поведение не определено.
Эта перегрузка участвует в разрешении перегрузки, только если InputIt удовлетворяет требованиям LegacyInputIterator.
Каждый итератор в диапазоне
[first, last) разыменовывается ровно один раз.
3) Заменяет содержимое элементами из
ilist.Все итераторы, указатели и ссылки на элементы контейнера становятся недействительными.
Параметры
| count | - | новый размер контейнера |
| value | - | значение, которым инициализируются элементы контейнера |
| first, last | - | пара итераторов, задающая исходный диапазон элементов для копирования |
| ilist | - | список инициализации, из которого копируются значения |
Сложность
1) Линейная относительно
count.
2) Линейная относительно расстояния между
first и last.
3) Линейная относительно
ilist.size().Пример
import std;
int main()
{
std::hive<int> hive;
const std::size_t count{4};
const int value{5};
hive.assign(count, value);
std::println("{}", hive);
const auto list = {1, 2, 3, 4} ;
hive.assign(list.begin(), list.end());
std::println("{}", hive);
hive.assign({5, 6, 7, 8});
std::println("{}", hive);
}
Вывод:
[5, 5, 5, 5] [1, 2, 3, 4] [5, 6, 7, 8]
См. также
| присваивает контейнеру значения из диапазона (открытая функция-член) |
|
| присваивает значения контейнеру (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/hive/assign