Почему в C ++ STL существует разделение алгоритмов, итераторов и контейнеров?
Я не могу понять, почему они разделили алгоритмы, итераторы и контейнеры в C ++ STL. Если повсеместно используются шаблоны, то у нас могут быть классы, содержащие все вещи в одном месте с параметрами шаблона.
В некотором тексте, который я получил, объясняется, что итераторы помогают алгоритмам взаимодействовать с данными контейнеров, но что, если контейнеры предоставляют некоторый механизм для доступа к данным, которыми он обладает?