c – 为什么在std :: map(和STL的其他关联容器)中没有front()方法?

前端之家收集整理的这篇文章主要介绍了c – 为什么在std :: map(和STL的其他关联容器)中没有front()方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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),但我的猜测是,是的,这并没有什么意义.此外,还没有什么明确的意思.你想要根,预订第一,订单先,先插入吗?顺序很清楚:前面是一边,背对另一边.地图是树.

猜你在找的C&C++相关文章