Мой взгляд на вещи (основанный, в значительной степени на элементах программирования ) заключается в том, что Степанов считает контейнеры существенно менее важными, чем алгоритмы и итераторы. С его точки зрения, алгоритмы являются наиболее важной частью. Итераторы являются вторичными, а контейнеры - это просто хранилище, необходимое для работы итераторов.
В книге он начинает с некоторых основ, таких как объекты и преобразования. Глава шестая посвящена, прежде всего, итераторам (фактически «Итераторы» - это название главы). Это также имеет почти единственное упоминание о контейнерах в книге:
Существует четыре вида линейных
Обход: однопроходной вперед (
входной поток), многопроходный вперед (
односвязный список), двунаправленный (
двусвязный список) и произвольный доступ
(массив).
Единственное другое место, которое я помню, он вообще упоминал контейнеры - это указание на то, что определенный тип («линеаризуемый») не является контейнером, потому что ему не принадлежит его содержимое.
Есть и другие аргументы, такие как минимизация дублирования и избежание двусмысленности, но лично я думаю, что они вторичны (в лучшем случае). STL пытается обобщить алгоритмы в максимально возможной степени. Контейнеры не акцентированы, и большая часть итераторов (или, по крайней мере, мне кажется) должна гарантировать, что они остаются в фоновом режиме.