STL reference似乎有一个概念上的区别:
>’序列容器'(array vector deque forward_list list)一方面
另一方面,’关联容器'(设置multiset map multimap unordered_set unordered_multiset unordered_map unordered_multimap).
另外,似乎我们有:
>所有实现一个begin()方法的容器返回指向容器中第一个元素的迭代器.
>只有具有front()方法的序列容器返回对容器中第一个元素的引用.
我的理解是,通过仅取消引用其返回值,可以很容易地使用begin()方法来定义front()方法.
因此,我的问题是:为什么没有为定义begin()方法的所有对象定义front()方法? (应该是每个容器真的)
(我猜想从语义的角度来看,从地图获取第一个元素并不像从向量中的第一个元素那样有意义,但是我想知道是否有更有效的解释).
解决方法
你真的要问标准委员会(comp.lang.c .std),但我的猜测是,是的,这并没有什么意义.此外,还没有什么明确的意思.你想要根,预订第一,订单先,先插入吗?顺序很清楚:前面是一边,背对另一边.地图是树.