4.4.5 使用sort()算法
接下来,程序对分数排序。
- sort(scores.begin(), scores.end());
sort()算法对序列中的元素进行升序排列。该算法需要序列的起点迭代器和终点迭代器来进行排序操作。此处,程序将scores.begin()和scores.end()返回的迭代器传递给算法。这两个迭代器表示对scores中的全部元素进行排序操作。程序的运行结果是,scores中的全部分数将以升序排列。
程序最后显示分数,证明排序成功。
技巧
STL算法的一个绝妙的特性在于,它们可以用于定义在STL之外的容器,只要这些容器满足特定要求即可。例如,尽管string对象不是STL的一部分,但仍然可以使用适当的STL算法,如下面的代码所示:
- string word = "High Scores";
- random_shuffle(word.begin(), word.end());
上面的代码对word中的字符进行乱序操作。如您所见,string对象有begin()和end()成员函数,它们分别返回指向第一个字符和最后一个字符之后的迭代器。这是STL算法能用于字符串的部分原因-- 它们就是如此设计的。