欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

c++ sort稳定吗

墨初 知识笔记 140阅读

c++ sort ()排序函数是什么?

答:C++ sort ()排序函数 1 容器支持的迭代器类型必须为随机访问迭代器。这意味着,sort () 只对 array、vector、deque 这 3 个容器提供支持。 2 如果对容器中指定区域的元素做默认升序排序,则元素类型必须支持 < 小于运算符;同样,如果选用标准库提供的其它排序规则,元素类型也必须支持该规则底层实现所用的比较运算符; 3 sort () 函数在实现排序时,需要交换容器中元素的存储位置。这种情况下,如果容器中存储的是自定义的类对象,则该类的内部必须提供移动构造函数和移动赋值运算符。

c++ STL 标准库中的 sort () 函数是什么?

答:C++ STL 标准库中的 sort () 函数,本质就是一个模板函数。 正如表 1 中描述的,该函数专门用来对容器或普通数组中指定范围内的元素进行排序,排序规则默认以元素值的大小做升序排序,除此之外我们也可以选择标准库提供的其它排序规则(比如 std::greater<T> 降序排序规则),甚至还可以自定义排序规则。

函数 sort() 和 sort () 有什么区别?

答:和 sort () 函数功能相似,不同之处在于,对于 [first, last) 范围内值相同的元素,该函数不会改变它们的相对位置。 从 [first,last) 范围内,筛选出 muddle-first 个最小的元素并排序存放在 [first,middle) 区间中。

stable_sort () 函数的使用场景是什么?

答:注意,关于 stable_sort () 函数的使用场景,《 C++ sort () 排序函数 》一节已经做了详细的介绍,这里不再赘述。 另外,stable_sort () 函数是基于归并排序实现的,关于此排序算法的具体实现过程,感兴趣的读者可阅读《 归并排序算法 》一文。

声明:无特别说明,转载请标明本文来源!