您好,登錄后才能下訂單哦!
怎樣分析Visual Studio auto關鍵字,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Visual Studio經過長時間的發展,很多用戶都很了解Visual Studio auto關鍵字了,這里我發表一下個人理解,和大家討論討論。在C++0x中,auto關鍵字的意義發生了改變。從Visual C++ 2010開始,Visual Studio auto關鍵字將用于指引編譯器根據變量的初始值來決定變量的數據類型。換句話說,我們可以把auto當成一種新的數據類型,它可以“從初始化器(initialize)中推導出所代表的變量的真正類型”。這種對auto關鍵字的使用方式可以大大消除當前替代方式所導致的冗長和易出錯的代碼。我們看一個實際的例子:
#include <iostream> #include <map> #include <ostream> #include <regex> #include <string> using namespace std; using namespace std::tr1; int main() { map<string, string> m; const regex r("(\\w+) (\\w+)"); for (string s; getline(cin, s); ) { smatch results; if (regex_match(s, results, r)) { m[results[1]] = results[2]; } } for (auto i = m.begin(); i != m.end(); ++i) { cout << i->second << " are " << i->first << endl; } return 0; }
在這段代碼中,我們使用Visual Studio auto關鍵字來代替了真正的數據類型map<string, string>::iterator,這使得整個代碼自然而簡潔。
另外,跟其他數據類型一樣,我們也可以對Visual Studio auto關鍵字進行修飾,例如添加const,指針(*),左值引用(&),右值引用(&&)等等,編譯器會根據auto類型所代表的真正的數據來決定這些修飾的具體含義。
為了兼容一些舊有的C++代碼,我們可以使用/Zc:auto這個編譯器選項,來告訴編譯器是采用Visual Studio auto關鍵字的原有定義還是在新標準C++0x中的定義。
看完上述內容,你們掌握怎樣分析Visual Studio auto關鍵字的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。