4.4.5 使用sort()算法

2013-10-07 14:46:18 · 作者: · 浏览: 55

4.4.5  使用sort()算法

接下来,程序对分数排序。

  1. sort(scores.begin(), scores.end()); 

sort()算法对序列中的元素进行升序排列。该算法需要序列的起点迭代器和终点迭代器来进行排序操作。此处,程序将scores.begin()和scores.end()返回的迭代器传递给算法。这两个迭代器表示对scores中的全部元素进行排序操作。程序的运行结果是,scores中的全部分数将以升序排列。

程序最后显示分数,证明排序成功。

技巧

STL算法的一个绝妙的特性在于,它们可以用于定义在STL之外的容器,只要这些容器满足特定要求即可。例如,尽管string对象不是STL的一部分,但仍然可以使用适当的STL算法,如下面的代码所示:

  1. string word = "High Scores";  
  2. random_shuffle(word.begin(), word.end()); 

上面的代码对word中的字符进行乱序操作。如您所见,string对象有begin()和end()成员函数,它们分别返回指向第一个字符和最后一个字符之后的迭代器。这是STL算法能用于字符串的部分原因-- 它们就是如此设计的。