STL. Forward list
По сути forward list реализует односвязные списки, позволяя быстро добавлять и удалять элементы без копирования всего массива данных. Реализация односвязного списка была добавлена несколько позже в STL.
Для работы необходимо подключить библиотеку
#include <forward_list>
forward list входит в пространство имен std, поэтому или пишем std:: или используем пространство имен using namespace std;
forward_list MyFL={1,2,3};
//опишем "уникальные" методы
//работаем с началом списка
MyFL.pop_front();
MyFL.push_front();
MyFL.insert_after(); //вставить элемент после заданного
MyFL.before_begin(); //область памяти ДО 1 элемента.
forward_list::iterator iter=MyFL.begin();
iter++;
cout<<*iter<<endl;
Для итераторов запрещены/не перегружены операции декремента (т.к. это противоречил логике односвязных списков)
По умолчанию метод insert вставляет элемент НА заданное место, т.е. перед указанным номером и сам становится указанным номером.
У узлов forward_list нет адреса предыдущего узла, только следующего поэтому мы указываем «before/after» и сохраняется возможность нумерации.
Т.е. было 1->2->4, вставляем что-то после 2 элемента, стало 1->2->3->4