STL 参考似乎在概念上有所不同:
- 一方面是“序列容器”(数组向量双端队列 forward_list 列表)
- 另一方面,“关联容器”(set multiset map multimap unordered_set unordered_multiset unordered_map unordered_multimap)。
此外,似乎我们有:
- 所有实现
begin()
方法的容器都返回一个指向容器中第一个元素的迭代器。 - 只有序列容器具有
front()
返回对容器中第一个元素的引用的方法。
我的理解是,只需取消引用其返回值,就front()
可以轻松地根据方法定义该方法。begin()
因此,我的问题是:为什么没有为front()
定义方法的所有对象定义begin()
方法?(实际上应该是每个容器)
(我想从语义的角度来看,从地图中获取第一个元素的意义不如从向量中获取第一个元素的意义,但我想知道是否有更有效的解释)。