07. STL. Forward list

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *