Различные способы инициализации списка в C++ STL
Предварительное требование: Список на C++
Списки — это контейнеры последовательности, допускающие несмежное выделение памяти. Ниже приведены различные способы создания и инициализации списка в C++ STL.
- Инициализация пустого списка и отправка значений по одному
- Указание размера списка и инициализация всех значений
- Инициализация списка как массивов
- Инициализация списка из массива
- Инициализация списка из вектора
- Инициализация списка из другого списка
- Инициализация списка с помощью функции 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.
Пример: