ссылка STL, по-видимому, создает концептуальную разницу между:
- "Контейнеры последовательности" (список векторов переадресации массива), с одной стороны
- "Ассоциативные контейнеры" (с другой стороны, множество мультимножеств multimap unordered_set unordered_multiset unordered_map unordered_multimap).
Кроме того, похоже, что у нас есть:
- все контейнеры, реализующие метод
begin()
, возвращают итератор, указывающий на первый элемент в контейнере. - только контейнеры последовательности, имеющие метод
front()
, возвращающий ссылку на первый элемент в контейнере.
Я понимаю, что метод front()
можно легко определить в терминах метода begin()
путем разыменования его возвращаемого значения.
Таким образом, мой вопрос: почему метод front()
не определен для всех объектов, определяющих метод begin()
? (который должен быть каждый контейнер действительно)
(я предполагаю, что с семантической точки зрения он не имеет особого смысла, чтобы получить первый элемент из карты, как это делается для первого элемента из вектора, но мне было интересно, было ли более допустимым объяснение).