相关疑难解决方法(0)

为什么std :: map(以及STL中的其他关联容器)没有front()方法?

STL参考似乎使之间的概念上的差异:

  • 'Sequence containers'(数组向量deque forward_list list)一方面
  • 另一方面,'关联容器'(设置multiset map multimap unordered_set unordered_multiset unordered_map unordered_multimap).

而且,似乎我们有:

  • 实现begin()返回指向容器中第一个元素的迭代器的方法的所有容器.
  • 只有序列容器有一个front()方法返回对容器中第一个元素的引用.

我的理解是,通过仅取消引用其返回值,可以根据front()方法轻松定义该begin()方法.

因此,我的问题是:为什么不为front()定义方法的所有对象定义begin()方法?(真的应该是每个容器)

(我想从语义的角度来看,从地图中获取第一个元素并不像从矢量中获取第一个元素那样有意义,但我想知道是否有更有效的解释).

c++ containers iterator stl map

14
推荐指数
2
解决办法
4838
查看次数

标签 统计

c++ ×1

containers ×1

iterator ×1

map ×1

stl ×1