设为首页 加入收藏

TOP

4.4.1 High Scores程序简介
2013-10-07 14:46:24 来源: 作者: 【 】 浏览:53
Tags:4.4.1 High Scores 程序 简介

4.4  使用算法

STL定义了一组算法。这些算法可以通过迭代器来操作容器中的元素。STL实现了用于完成一些常见任务的算法,如查找、乱序和排序。这些算法是内置的灵活而高效的工具。使用它们可以将操作容器中元素的普通任务交给STL完成,从而将精力集中在游戏的编写上。这些算法的强大之处在于它们是泛型的,即同样的算法可以用于不同容器类型的元素。

4.4.1  High Scores程序简介

High Scores程序创建了一个存储高分的向量,还使用STL算法对分数进行查找、乱序和排序操作。程序如图4-5所示。

 
图4-5  STL算法对高分向量中的元素进行查找、乱序和排序操作
从Course Technology网站(www.courseptr.com/downloads)或本书合作网站(http://www. tupwk.com.cn/downpage)上可以下载该程序的代码。程序位于Chapter 4文件夹中,文件名为high_scores.cpp。
  1. // High Scores  
  2. // Demonstrates algorithms  
  3. #include <iostream> 
  4. #include <vector> 
  5. #include <algorithm> 
  6. #include <ctime> 
  7. #include <cstdlib> 
  8. using namespace std;  
  9. int main()  
  10. {  
  11. vector<int>::const_iterator iter;  
  12. cout << "Creating a list of scores.";  
  13. vector<int> scores;  
  14. scores.push_back(1500);  
  15. scores.push_back(3500);  
  16. scores.push_back(7500);  
  17. cout << "\nHigh Scores:\n";  
  18. for (iter = scores.begin(); iter != scores.end(); ++iter)  
  19. {  
  20. cout << *iter << endl;  
  21. }  
  22. cout << "\nFinding a score.";  
  23. int score;  
  24. cout << "\nEnter a score to find: ";  
  25. cin >> score;  
  26. iter = find(scores.begin(), scores.end(), score);  
  27. if (iter != scores.end())  
  28. {  
  29. cout << "Score found.\n";  
  30. }  
  31. else  
  32. {  
  33. cout << "Score not found.\n";  
  34. }  
  35. cout << "\nRandomizing scores.";  
  36. srand(static_cast<unsigned int>(time(0)));  
  37. random_shuffle(scores.begin(), scores.end());  
  38. cout << "\nHigh Scores:\n";  
  39. for (iter = scores.begin(); iter != scores.end(); ++iter)  
  40. {  
  41. cout << *iter << endl;  
  42. }  
  43. cout << "\nSorting scores.";  
  44. sort(scores.begin(), scores.end());  
  45. cout << "\nHigh Scores:\n";  
  46. for (iter = scores.begin(); iter != scores.end(); ++iter)  
  47. {  
  48. cout << *iter << endl;  
  49. }  
  50. return 0;  
  51. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇建议1:区分0的4种面孔 下一篇4.5.2 元素的插入与删除

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: