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

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

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

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

领测软件测试网

       Visual Studio 2010中C++的四大变化(1)   软件测试

             微软即将在2010年4月12日发布Visual Studio 2010的正式版,对于C++语言做了修改,使之更加符合C++标准,文章将对C++语言的修改来做一下分析。

    在微软即将发布的Visual Studio 2010正式版中,其对C++语言做了一些修改,之前51cto也报道过Visual Studio 2010中关于C++项目的升级问题,文章则针对C++语言上的一些变化。

    Lambda表达式

    很多编程编程语言都支持匿名函数(anonymous function)。所谓匿名函数,就是这个函数只有函数体,而没有函数名。Lambda表达式就是实现匿名函数的一种编程技巧,它为编写匿名函数提供了简明的函数式的句法。同样是Visual Studio中的开发语言,Visual Basic和Visual C#早就实现了对Lambda表达式的支持,终于Visual C++这次也不甘落后,在Visual Studio 2010中添加了对Lambda表达式的支持。

    Lambda表达式使得函数可以在使用的地方定义,并且可以在Lambda函数中使用Lambda函数之外的数据。这就为针对集合操作带来了很大的便利。在作用上,Lambda表达式类似于函数指针和函数对象,Lambda表达式很好地兼顾了函数指针和函数对象的优点,却没有它们的缺点。相对于函数指针或是函数对象复杂的语法形式,Lambda表达式使用非常简单的语法就可以实现同样的功能,降低了Lambda表达式的学习难度,避免了使用复杂的函数对象或是函数指针所带来的错误。我们可以看一个实际的例子:

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

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

      TAG: studio Studio visual Visual

      21/212>

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

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