C++11新版本“for的使用“和“auto“

茶不復返發表於2020-12-13

官方給出的回答是,如下:
C++11將auto用於實現自動型別判斷。這要求進行顯示初始化,讓編譯器能夠將變數的 型別設定為初始值的型別。
auto maton = 112 ; // maton is type int
auto pt = &maton ; // pt id type int *
double fm ( double , int ) ;
auto pf = fm ; // pf is type double () (double , int )
關鍵字auto還可簡化模板宣告。
例:
如果 il 是一個std::initializer_list物件,則可將下述程式碼:
for ( std :: initializer_list < double > :: iterator p = il.begin() ; p != il.end() ; p++ )
替換為如下程式碼:
for ( auto p = il.begin() ; p != il.end() ; p ++ )
auto maton = 112 ; // maton is type int
auto pt = &maton ; // pt id type int *
double fm ( double , int ) ;
auto pf = fm ; // pf is type double () (double , int )
例:
如果 il 是一個std::initializer_list物件,則可將下述程式碼:
for ( std :: initializer_list < double > :: iterator p = il.begin() ; p != il.end() ; p++ )
替換為如下程式碼:
for ( auto p = il.begin() ; p != il.end() ; p ++ )

個人理解如下:

double  prices [ 5 ] = { 4.99 , 10.99 , 6.87 , 7.99 , 8.49 } ;

for ( double x : prices )

  std :: cout << x << std :: endl ;

在迴圈間隔為1的條件下,遍歷陣列或檔案,下面例子可以解釋上面左右的內容
for ( auto p = prices .begin() ; p != prices .end() ; p ++ )。

相關文章