自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)分析Visual Studio auto關(guān)鍵字

開發(fā) 后端
這里介紹從Visual C++ 2010開始,Visual Studio auto關(guān)鍵字將用于指引編譯器根據(jù)變量的初始值來決定變量的數(shù)據(jù)類型。

Visual Studio經(jīng)過長時(shí)間的發(fā)展,很多用戶都很了解Visual Studio auto關(guān)鍵字了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。在C++0x中,auto關(guān)鍵字的意義發(fā)生了改變。從Visual C++ 2010開始,Visual Studio auto關(guān)鍵字將用于指引編譯器根據(jù)變量的初始值來決定變量的數(shù)據(jù)類型。換句話說,我們可以把a(bǔ)uto當(dāng)成一種新的數(shù)據(jù)類型,它可以“從初始化器(initialize)中推導(dǎo)出所代表的變量的真正類型”。這種對auto關(guān)鍵字的使用方式可以大大消除當(dāng)前替代方式所導(dǎo)致的冗長和易出錯的代碼。我們看一個(gè)實(shí)際的例子:

  1. #include <iostream> 
  2. #include <map> 
  3. #include <ostream> 
  4. #include <regex> 
  5. #include <string> 
  6. using namespace std;  
  7. using namespace std::tr1;  
  8.  
  9. int main() {  
  10. map<string, 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關(guān)鍵字來代替了真正的數(shù)據(jù)類型map<string, string>::iterator,這使得整個(gè)代碼自然而簡潔。

另外,跟其他數(shù)據(jù)類型一樣,我們也可以對Visual Studio auto關(guān)鍵字進(jìn)行修飾,例如添加const,指針(*),左值引用(&),右值引用(&&)等等,編譯器會根據(jù)auto類型所代表的真正的數(shù)據(jù)來決定這些修飾的具體含義。

為了兼容一些舊有的C++代碼,我們可以使用/Zc:auto這個(gè)編譯器選項(xiàng),來告訴編譯器是采用Visual Studio auto關(guān)鍵字的原有定義還是在新標(biāo)準(zhǔn)C++0x中的定義。

責(zé)任編輯:佚名 來源: NET130
相關(guān)推薦

2009-12-16 14:09:14

Visual Stud

2009-11-24 13:56:53

Visual Stud

2009-09-25 14:23:39

2009-09-28 10:39:01

Hibernate基礎(chǔ)

2009-06-18 14:00:51

2009-10-10 13:52:57

VB Update方法

2009-09-09 09:48:43

Linq延遲加載

2009-09-14 16:21:34

LINQ To XML

2009-09-14 13:50:35

LINQ編程模型

2009-09-08 15:56:50

Linq使用Group

2009-11-20 13:11:44

Oracle XML數(shù)

2010-01-06 13:50:37

.NET Framew

2009-12-28 13:24:24

BGPMPLS VPN

2009-09-07 13:19:44

C#線程同步

2009-09-04 15:43:07

C#流模型

2009-12-07 15:37:00

WCF控件

2010-04-26 18:17:19

Oracle存儲過程

2009-03-24 08:30:54

AndroidGoogle移動os

2009-09-03 17:57:06

C#聲明事件

2011-09-24 12:34:03

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號