新聞中心
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ù)類型。換句話說,我們可以把a(bǔ)uto當(dāng)成一種新的數(shù)據(jù)類型,它可以“從初始化器(initialize)中推導(dǎo)出所代表的變量的真正類型”。這種對auto關(guān)鍵字的使用方式可以大大消除當(dāng)前替代方式所導(dǎo)致的冗長和易出錯的代碼。我們看一個實際的例子:

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比槐蔭網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式槐蔭網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋槐蔭地區(qū)。費(fèi)用合理售后完善,10余年實體公司更值得信賴。
- #include
- #include
- #include
- #include
- #include
- using namespace std;
- using namespace std::tr1;
- int main() {
- map
, 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;
- }
#t#在這段代碼中,我們使用Visual Studio auto關(guān)鍵字來代替了真正的數(shù)據(jù)類型map
另外,跟其他數(shù)據(jù)類型一樣,我們也可以對Visual Studio auto關(guān)鍵字進(jìn)行修飾,例如添加const,指針(*),左值引用(&),右值引用(&&)等等,編譯器會根據(jù)auto類型所代表的真正的數(shù)據(jù)來決定這些修飾的具體含義。
為了兼容一些舊有的C++代碼,我們可以使用/Zc:auto這個編譯器選項,來告訴編譯器是采用Visual Studio auto關(guān)鍵字的原有定義還是在新標(biāo)準(zhǔn)C++0x中的定義。
分享名稱:詳細(xì)分析Visual Studio auto關(guān)鍵字
網(wǎng)頁URL:http://m.5511xx.com/article/cdgisgo.html


咨詢
建站咨詢
