【摘要】:sort()算法和stable_sort()算法支持对容器(序列)中所有元素的排序。由于list型容器不支持随机访问型迭代器,所以不能使用这里两个算法,但是list型容器提供了sort()成员函数,可用于自身元素的排序。其第二种形式均以二元判断式pr作为排序准则。顾名思义,stable_sort()会比sort()更加稳定、可靠。图4-26 例4-26的执行效果用户可以自定义二元判断式算法。算法的定义如下:上述省略部分在此仅举两例:1)若T为int型,则省略部分可为:res=。
sort()算法和stable_sort()算法支持对容器(序列)中所有元素的排序。sort()算法和stable_sort()算法需要访问随机访问型迭代器,只能适用于vector型和deque型容器。由于list型容器不支持随机访问型迭代器,所以不能使用这里两个算法,但是list型容器提供了sort()成员函数,可用于自身元素的排序。
sort()算法和stable_sort()的原型为:
和
stable_sort()算法能够保持序列或容器中的元素相对顺序不改变,而sort()则不能。上述两种算法均具有两种形式的原型。其第二种形式均以二元判断式pr(elem1,elem2)作为排序准则。顾名思义,stable_sort()会比sort()更加稳定、可靠。上述原型中RanIt代表(随机访问迭代器)。
上述两种算法的默认排序准则是:利用“operator<”实现升序排序。可以利用规则表达式实现降序排序,也可以使用自定义的规则表达式,详见例4-26。
例4-26
(www.xing528.com)
例4-26的执行效果如图4-26所示。
图4-26 例4-26的执行效果
用户可以自定义二元判断式算法。算法的定义如下:
上述省略部分在此仅举两例:
1)若T为int型,则省略部分可为:res=(elem1>elem2)。
2)若T为string型,则省略部分可为:res=(elem1.length()>elem2.length())。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。