- 我知道可以使用
*s.begin()
,但同样的参数也适用于vector
,它有front
/back
。 - 我经常使用set/map的有序属性来获取“最小”的元素/键 - 当然,我这样做不是有这个特性的原因,只是一个例子 :)
在这里,我谈论的是关于front
/back
为什么会是不好的设计的设计原因,所以请跳过明显的理由,比如委员会忘记了它……
*s.begin()
,但同样的参数也适用于vector
,它有front
/back
。在这里,我谈论的是关于front
/back
为什么会是不好的设计的设计原因,所以请跳过明显的理由,比如委员会忘记了它……
我想 "front" 和 "back" 这两个词是针对 sequence 容器(即那些元素的顺序由插入顺序决定的容器)保留的,这些词意味着在该序列中有一个物理位置。
由于 set
不是一个 sequence 容器(而是一个关联容器),因此这不合适。特别地,需要注意的是,“front”的含义可因后续插入一个无关元素而改变。
push_back
,向量的“back”也会发生变化。但是第一段加1分。 - Fred Foostd::list
是最好的例子,而std::vector
有一个例外,即插入操作会使“back”失效,而std::deque
则有一个例外,即在中间插入会使“front”和“back”都失效。这些陈述对于引用来说实际上是完全正确的。 - Kerrek SBstd::set
因为失效问题),它们只是不再指向前面或后面。 - Fred Foo