sort是基于快速排序来实现的,可以很方便的对于一个容器或者普通数组进行排序,排序的默认值是按照元素值大小的升序来排序的,其他的排序方式,就需要进行自定义排序了。
需要注意的是,sort函数并不能保证排序完数值相同的元素在原来的位置,如果需要保持原来的位置需要用到stable_sort函数。
sort() 函数受到底层实现方式的限制,它仅适用于普通数组和部分类型的容器。换句话说,只有普通数组和具备以下条件的容器,才能使用 sort() 函数:
- 容器支持的迭代器类型必须为随机访问迭代器。这意味着,sort() 只对 array、vector、deque 这 3 个容器提供支持。如果对容器中指定区域的元素做默认升序排序,则元素类型必须支持"<"小于运算符;同样,如果选用标准库提供的其它排序规则,元素类型也必须支持该规则底层实现所用的比较运算符;sort() 函数在实现排序时,需要交换容器中元素的存储位置。这种情况下,如果容器中存储的是自定义的类对象,则该类的内部必须提供移动构造函数和移动赋值运算符。
在运用sort函数前,需要引用库,即在开头加上
#include
sort的常见用法如下
vectortemp; sort(temp.begin(),temp.end());
即可对temp容器里的元素进行升序排序。
自定义排序暂时没有学习透彻,等了解明白后再更新。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)