Руководство по стандартной библиотеке шаблонов STL


Список (List) - часть 2


Точный тип зависит от исполнения и определяется в Allocator. Гарантируется, что имеется конструктор для const_iterator из iterator.

    size_type - беззнаковый целочисленный тип. Точный тип зависит от исполнения и определяется в Allocator.

    difference_type - знаковый целочисленный тип. Точный тип зависит от исполнения и определяется в Allocator.

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

    erase делает недействительными только итераторы и ссылки для стёртых элементов. Стирание единственного элемента - операция постоянного времени с единственным вызовом деструктора T. Стирание диапазона в списке занимает линейное время от размера диапазона, а число вызовов деструктора типа T точно равно размеру диапазона.

    Так как списки позволяют быструю вставку и стирание в середине списка, то некоторые операции определяются специально для них:

    list обеспечивает три операции стыковки, которые разрушительно перемещают элементы из одного списка в другой:

    void splice(iterator position, list& x) вставляет содержимое x перед position, и x становится пустым. Требуется постоянное время. Результат не определён, если &x == this.

    void splice(iterator position, list& x, iterator i) вставляет элемент, указываемый i, из списка x перед position и удаляет элемент из x. Требуется постоянное время. i - допустимый разыменовываемый итератор списка x. Результат не изменяется, если position == i или position == ++i.

    void splice(iterator position, list& x, iterator first, iterator last) вставляет элементы из диапазона [first, last) перед position и удаляет элементы из x.


Начало  Назад  Вперед