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