关于范围for语句的使用
生活随笔
收集整理的這篇文章主要介紹了
关于范围for语句的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 使用范圍for語句處理多維數組
使用范圍for語句處理多維數組
舉個例子,使用范圍for語句輸出多維數組(ia)所有值:
for (const auto &row : ia)for (auto col : row)cout << col << endl;本循環中并沒有任何寫操作,可仍將外層循環的控制變量聲明成了引用類型,這是為了避免數組被自動轉換成指針。如果不用引用類型,則循環如下述形式:
for (auto row : ia)for (auto col : row)程序無法通過編譯。第一個循環想要遍歷ia的所有元素(實際上是大小為4的數組),但由于row不是引用類型,所以編譯器初始化row時會自動將這些數組形式的元素轉換成指向數組內首元素的指針。這樣得到的row類型就是int*,顯然內層循環“for (auto col : row)”就不合法了,其含義成了編譯器試圖在一個int*內遍歷,和程序的初衷相去甚遠。
因此,要使用范圍for語句處理多維數組,除了最內層的循環外,其他所有循環的控制變量都應該是引用類型。
總結
以上是生活随笔為你收集整理的关于范围for语句的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 总资产周转率 总资产的周转率是什么东西啊
- 下一篇: Numpy数组的广播机制