• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Visual Studio 2010中C++的四大变化(1)

发布: 2010-3-26 10:58 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 41次 | 进入软件测试论坛讨论

领测软件测试网

这段代码循环遍历输出vector中的每一个数,并判断这个数是奇数还是偶数。我们可以随时修改Lambda表达式而改变这个匿名函数的实现,修改对集合的操作。在这段代码中,C++使用一对中括号“[]”来表示Lambda表达式的开始,其后的”(int n)”表示Lambda表达式的参数。这些参数将在Lambda表达式中使用到。为了体会Lambda表达式的简洁,我们来看看同样的功能,如何使用函数对象实现:

  1. #include "stdafx.h"   
  2. #include <algorithm>   
  3. #include <iostream>   
  4. #include <ostream>   
  5. #include <vector>   
  6. using namespace std;   
  7.  
  8. struct LambdaFunctor {   
  9. void operator()(int n) const {   
  10. cout << n << " ";   
  11. if (n % 2 == 0) {   
  12. cout << " even ";   
  13. } else {   
  14. cout << " odd ";   
  15. }   
  16.  
  17. }   
  18. };   
  19.  
  20. int _tmain(int argc, _TCHAR* argv[])   
  21. {   
  22. vector<int> v;   
  23.  
  24. for (int i = 0; i < 10; ++i) {   
  25. v.push_back(i);   
  26. }   
  27.  
  28. for_each(v.begin(), v.end(), LambdaFunctor());   
  29. cout << endl;   
  30.  
  31. return 0;   
  32. }  
  33. #include "stdafx.h"  
  34. #include <algorithm> 
  35. #include <iostream> 
  36. #include <ostream> 
  37. #include <vector> 
  38. using namespace std;  
  39.  
  40. struct LambdaFunctor {  
  41. void operator()(int n) const {  
  42. cout << n << " ";  
  43. if (n % 2 == 0) {  
  44. cout << " even ";  
  45. } else {  
  46. cout << " odd ";  
  47. }  
  48.  
  49. }  
  50. };  
  51.  
  52. int _tmain(int argc, _TCHAR* argv[])  
  53. {  
  54. vector<int> v;  
  55.  
  56. for (int i = 0; i < 10; ++i) {  
  57. v.push_back(i);  
  58. }  
  59.  
  60. for_each(v.begin(), v.end(), LambdaFunctor());  
  61. cout << endl;  
  62.  
  63. return 0;  
  64. }  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网