微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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),但我的猜测是,是的,这并没有什么意义.此外,还没有什么明确的意思.你想要根,预订第一,订单先,先插入吗?顺序很清楚:前面是一边,背对另一边.地图是树.

原文地址:https://www.jb51.cc/c/113316.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐