Различные способы инициализации списка в C++ STL

Опубликовано: 28 Января, 2023

Предварительное требование: Список на C++

Списки — это контейнеры последовательности, допускающие несмежное выделение памяти. Ниже приведены различные способы создания и инициализации списка в C++ STL.

  1. Инициализация пустого списка и отправка значений по одному
  2. Указание размера списка и инициализация всех значений
  3. Инициализация списка как массивов
  4. Инициализация списка из массива
  5. Инициализация списка из вектора
  6. Инициализация списка из другого списка
  7. Инициализация списка с помощью функции fill()

1. Инициализация пустого списка и ввод значений по одному

Стандартный способ инициализации списка состоит в том, чтобы сначала создать пустой список, а затем в этот список добавляются элементы с помощью встроенного метода list_name.push_back().

Синтаксис:

list<data_type> li;

li.push_back(ele);

// Here list li is initialized and element ele is inserted into that list.

Пример:

2. Указание размера списка и инициализация всех значений

Другой способ инициализировать список — присвоить определенное значение всем элементам списка. В этом методе мы передаем желаемый размер списка и значение, которое будет сохранено для всех элементов этого размера.

Синтаксис:

list<data_type> li(n,val);
// Here list li is initialized with size as n and values as val.

Пример:

3. Инициализация списка как массивов

Другой способ инициализации — передача предопределенного списка элементов (списка инициализатора) в качестве аргумента. Синтаксис этого метода показан ниже:

Синтаксис:

list<data_type> li{element1,element2,element3,element4};

Пример:

4. Инициализация списка из массива

Также можно инициализировать список из массива с тем же типом данных.

Синтаксис:

list<data_type>li(old_array,old_array+size); 

Здесь old_array — это массив, содержащий элементы того же типа данных, что указан в объявлении списка, а размер представляет собой длину, до которой мы хотим скопировать элементы из массива в список.

Ниже приведена программа на C++ для реализации описанного выше подхода:

5. Инициализация списка из вектора

Список также можно инициализировать с помощью вектора того же типа данных. Мы предоставляем итераторы этого вектора в качестве аргументов для копирования элементов.

Синтаксис:

list<data_type>li(old_vector.begin(),old_vector.end()); 

Здесь old_vector — вектор, элементы которого копируются в список li.

Ниже приведена программа на C++ для реализации описанного выше подхода:

6. Инициализация из другого списка

Другой способ инициализировать список — использовать другой список. Здесь мы предоставляем итераторы старого списка в качестве аргументов. Синтаксис для этого приведен ниже.

Синтаксис:

list<data_type>li(old_list.begin(),old_list.end()); 

Пример:

7. Инициализация списка с помощью функции fill()

Также можно инициализировать список с помощью функции fill() в C++. Функция «заполнить» присваивает любое конкретное значение всем элементам в заданном диапазоне. Здесь диапазон предоставляется с помощью итераторов.

Синтаксис:

list<data_type> li(n);
fill(li.begin(), li.end(), val);

// Here, the list li is initialized with n as size and the value of all elements as val.

Пример: