Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;集合有序迭代-在集合上迭代的结果是否按标准排序?_C++_Stl - Fatal编程技术网

C++ c++;集合有序迭代-在集合上迭代的结果是否按标准排序?

C++ c++;集合有序迭代-在集合上迭代的结果是否按标准排序?,c++,stl,C++,Stl,我能否依靠以下假设(换句话说:是否有标准保证?): set::begin()将指向集合中最小的元素 在集合上迭代(从set::begin()到set::end())将以递增的顺序给出元素 请确定:这些属性是否适用于map中的键 我的意思是set和map来自STL 另外,我知道在操作符中,顺序取决于所使用的比较函子(映射上的第三个模板参数,集合上的第二个模板参数)。默认值为std::less,它为集合/映射提供升序,是。是,根据元素的(键)bool操作符,您可以根据定义依赖它 更详细的回答:s

我能否依靠以下假设(换句话说:是否有标准保证?):

  • set::begin()
    将指向集合中最小的元素
  • 在集合上迭代(从
    set::begin()
    set::end()
    )将以递增的顺序给出元素
  • 请确定:这些属性是否适用于
    map
    中的键
我的意思是
set
map
来自
STL


另外,我知道在
操作符中,顺序取决于所使用的比较函子(映射上的第三个模板参数,集合上的第二个模板参数)。默认值为
std::less
,它为集合/映射提供升序,是。

是,根据元素的(键)
bool操作符,您可以根据定义依赖它


更详细的回答:std::set和std::map都使用第二个模板参数——一个二进制谓词来比较元素。默认情况下,这是std::less—一个实现单个布尔函数的类—它本身是根据运算符定义的,而您的操作是错误的。较长的答案应该是“Yeeeeeeees”。你能参考一下标准吗?@GrzegorzWierzowiecki我刚刚添加了一些来自C++11标准的引用。谢谢。这正是我所好奇的。BTW.你知道它是否适用于旧的C++标准?@ GrZeGrZWiReZoWieCiki,它是在C++标准化之后才出现的。在C+103标准(C++98的修订版)中,相关章节为§23.1.2。