详细分析Visual Studio auto关键字

Visual Studio经过长时间的发展,很多用户都很了解Visual Studio auto关键字了,这里我发表一下个人理解,和大家讨论讨论。在C++0x中,auto关键字的意义发生了改变。从Visual C++ 2010开始,Visual Studio auto关键字将用于指引编译器根据变量的初始值来决定变量的数据类型。换句话说,我们可以把auto当成一种新的数据类型,它可以“从初始化器(initialize)中推导出所代表的变量的真正类型”。这种对auto关键字的使用方式可以大大消除当前替代方式所导致的冗长和易出错的代码。我们看一个实际的例子:

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比槐荫网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式槐荫网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖槐荫地区。费用合理售后完善,10余年实体公司更值得信赖。

 
 
 
  1. #include  
  2. #include  
  3. #include  
  4. #include  
  5. #include  
  6. using namespace std;  
  7. using namespace std::tr1;  
  8.  
  9. int main() {  
  10. map, string> m;  
  11.  
  12. const regex r("(\\w+) (\\w+)");  
  13.  
  14. for (string s; getline(cin, s); ) {  
  15. smatch results;  
  16. if (regex_match(s, results, r)) {  
  17. m[results[1]] = results[2];  
  18. }  
  19. }  
  20. for (auto i = m.begin(); i != m.end(); ++i) {  
  21. cout << i->second << " are " << i->first << endl;  
  22. }  
  23.  
  24. return 0;  

#t#在这段代码中,我们使用Visual Studio auto关键字来代替了真正的数据类型map::iterator,这使得整个代码自然而简洁。

另外,跟其他数据类型一样,我们也可以对Visual Studio auto关键字进行修饰,例如添加const,指针(*),左值引用(&),右值引用(&&)等等,编译器会根据auto类型所代表的真正的数据来决定这些修饰的具体含义。

为了兼容一些旧有的C++代码,我们可以使用/Zc:auto这个编译器选项,来告诉编译器是采用Visual Studio auto关键字的原有定义还是在新标准C++0x中的定义。

标题名称:详细分析Visual Studio auto关键字
当前地址:http://www.shufengxianlan.com/qtweb/news11/103711.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联