加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 06:43:49 所属栏目:百科 来源:网络整理
导读:STL reference似乎有一个概念上的区别: ’序列容器'(array vector deque forward_list list)一方面 另一方面,’关联容器'(设置multiset map multimap unordered_set unordered_multiset unordered_map unordered_multimap). 另外,似乎我们有: 所有实现一个
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),但我的猜测是,是的,这并没有什么意义.此外,还没有什么明确的意思.你想要根,预订第一,订单先,先插入吗?顺序很清楚:前面是一边,背对另一边.地图是树.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读