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


Последовательности (Sequences)


    Последовательность - это вид контейнера, который организует конечное множество объектов одного и того же типа в строгом линейном порядке. Библиотека обеспечивает три основных вида последовательных контейнеров: vector (вектор), list (список) и deque (двусторонняя очередь). Она также предоставляет контейнерные адаптеры, которые облегчают создание абстрактных типов данных, таких как стеки или очереди, из основных видов последовательностей (или из других видов последовательностей, которые пользователь может сам определить).

    В следующих двух таблицах X - последовательный класс, a - значение X, i и j удовлетворяют требованиям итераторов ввода, [i, j) - допустимый диапазон, n - значение X::size_type, p - допустимый итератор для a, q - разыменовываемый итератор для a, [ql, q2) - допустимый диапазон в a, t - значение X::value_type.

    Сложности выражений зависят от последовательностей.

Таблица 10. Требования последовательностей (в дополнение к контейнерам)
выражение возвращаемый тип утверждение/примечание
состояние до/после
X(n, t)
X a(n, t);
. после: size() == n.
создаёт последовательность с n копиями t.
X(i, j)
X a(i, j);
. после: size() == расстоянию между i и j.
создаёт последовательность, равную диапазону [i, j).
a.insert(p, t) iterator вставляет копию t перед p.
возвращаемое значение указывает на вставленную копию.
a.insert(p, n, t) результат не используется вставляет n копий t перед p.
a.insert(p, i, j) результат не используется вставляет копии элементов из диапазона [i, j) перед p.
a.erase(q) результат не используется удаляет элемент, указываемый q.
a.erase(ql, q2) результат не используется удаляет элементы в диапазоне [ql, q2).

    vector (вектор), list (список) и deque (двусторонняя очередь) выдвигают программисту различные предложения сложности и должны использоваться соответственно. vectоr - тип последовательности, которая используется по умолчанию.


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



Книжный магазин