我可以依靠这个假设(换句话说:它是否由标准保证?):
set<T>::begin() 会指向集合中的最小元素吗?set<T>::begin()直到set<T>::end())将按顺序递增元素?map?我的意思是set和map从STL.
PS我知道邻接operator<()并定义自己的比较器.请确保标准说明了什么?
是的,您可以依赖于定义,具体取决于元素的(键)bool operator<或作为模板参数传递给集合(映射)的比较函子.因此,根据所使用的比较器,排序将从最小到最大.
在C++ 11标准§23.2.4中,处理关联容器的要求:
每个关联容器都在Key上进行参数化和一个排序关系比较,它对Key的元素产生严格的弱排序(25.4).此外,map和multimap将任意类型T与Key相关联.Compare类型的对象称为容器的比较对象.
然后,在同一部分:
关联容器的迭代器的基本属性是它们以密钥的非降序顺序遍历容器,其中非降序由用于构造它们的比较定义.对于任何两个可解除引用的迭代器i和j,使得从i到j的距离为正,value_comp(*j,*i)== false
value_comp比较函数在哪里.