有没有设计理由为什么std :: set没有前后成员函数?

时间:2013-05-21 08:09:57

标签: c++ set

  1. 我知道我可以使用*s.begin(),但vector可以使用相同的参数,front / back
  2. 我常常使用set / map的ordered属性来获取“最小”元素/键 - 事实上这样做不是理由,只是一个例子:)< / LI>

    我在谈论设计为什么front / back设计不好的原因,所以请忽略委员会忘记它的明显原因...

1 个答案:

答案 0 :(得分:22)

我想“”和“back”这两个词是为 sequence 容器保留的(即元素顺序由插入顺序决定的那些),而且这些词是指建议该序列中的物理位置。

由于set不是序列容器(而是关联容器),因此这是不合适的。特别要注意的是,“front”的含义可以通过以后插入不相关的元素来改变。