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&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...