C++ 14 auto 教程

sunbiaobiao發表於2014-09-12

C++14標準最近剛被通過,像以前一樣,沒有給這個語言帶來太大變化,C++14標準是想通過改進C++11 來讓程式設計師更加輕鬆的程式設計,C++11引入auto關鍵字(嚴格來說auto從C++ 03 開始就有了,只是C++11改變了auto的含義),auto讓你的程式碼更加乾淨,更容易讓你避免錯誤,舉個例子

原來你必須這樣寫

你現在可以這樣寫

宣告為auto的變數在編譯時期就分配了記憶體,而不是到了執行時期,所以使用auto不再引發任何速度延遲,這也意味著使用auto的時候,這個變數不初始化會報錯。因為編譯器無法知道這個變數的型別。

C++11中一個做的不好的地方是,你不能使用auto來定義一個函式型別,在新的標準中你就可以了:

只要你的函式返回一個值,編譯器就知道怎麼解釋這個auto關鍵詞。現在,你可以使用最新版本的Clang和GCC,

為了更好地使用auto來簡化你的程式碼,讓我們分別使用C++98 、C++11 和C++14 來實現同一段程式碼,為了說明,我們使用兩個函式來改變一個vector變數

很明顯,這個迴圈給一個vector變數的每一個值加一再乘以二 你可以寫一個函式,而不是兩個。這裡我們不是為了追求效能,而是說明auto的用法。

在C++98中你要這樣寫

上面的程式碼顯得很囉嗦

在C++11中你可以這樣寫

C++11 中顯然有了進步,我們這是可以使用auto來簡化迴圈時候的一點程式碼。但仍顯囉嗦。

在C++14中你可以使用auto來定義一個函式型別,程式碼可以簡化為這樣:

這裡是完整程式碼

你可以清晰的對比出,C++14比C++11 有了一點進步。

相關文章