РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
664 of 815 menu

Функция uninitialized_fill

Функция uninitialized_fill заполняет область неинициализированной памяти заданным значением. В первый параметр мы передаем итератор, указывающий на начало области памяти, во второй - итератор, указывающий на конец области, а в третий - значение, которым нужно заполнить память. Функция не конструирует объекты, а выполняет копирующее присваивание в сырую память.

Синтаксис

uninitialized_fill(first, last, value);

Пример

Давайте выделим память под массив из 5 целых чисел, заполним её значением 3 и выведем результат:

#include <iostream> #include <memory> using namespace std; int main() { allocator<int> alloc; int* p = alloc.allocate(5); uninitialized_fill(p, p + 5, 3); for (int i = 0; i < 5; i++) { cout << p[i] << " "; } cout << endl; for (int i = 0; i < 5; i++) { alloc.destroy(p + i); } alloc.deallocate(p, 5); return 0; }

Результат выполнения кода:

3 3 3 3 3

Пример

Давайте заполним неинициализированную память символами 'a':

#include <iostream> #include <memory> using namespace std; int main() { allocator<char> alloc; char* p = alloc.allocate(5); uninitialized_fill(p, p + 5, 'a'); for (int i = 0; i < 5; i++) { cout << p[i] << " "; } cout << endl; for (int i = 0; i < 5; i++) { alloc.destroy(p + i); } alloc.deallocate(p, 5); return 0; }

Результат выполнения кода:

"a a a a a"

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

  • функция uninitialized_copy,
    которая копирует объекты в неинициализированную память
  • функция construct_at,
    которая конструирует объект в заданной памяти
  • функция destroy_at,
    которая разрушает объект в заданной памяти
  • класс allocator,
    который управляет выделением памяти
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить