HOME ABOUT CONTACT

C/C++教學: 第二十六課 - 基於範圍的 for 迴圈(Range-based For Loop)

Rain November 12, 2024
Outline

1. 簡介

2. 應用範例

簡介top

介紹完其中一種標準函式庫的資料容器 - 列表(List)之後,我們來看一下應用於這樣的資料容器的精簡迴圈 - 基於範圍的 For 迴圈。

它是運用 For 迴圈來走訪資料容器中的所有元素,簡化了運用 Iterator 的迴圈走訪。雖然它的優點可以簡化運用 Iterator 的 For 迴圈,但它的缺點是如果用 auto 修飾詞來修飾被走訪的元素,就會稍微消耗一點效能。

我們先來看看它的語法:


for (const auto& element : data_container) {
    ... // do something for loop
}
                        

像上述的語法中,是運用 auto 來修飾了被走訪元素 element,這樣不管資料容器裡是什麼資料型態的元素,都可以自動地被轉換給變數 element,但這樣的自動轉換,在程式執行時會稍微消耗一點效能。

應用範例top

那麼我們就用上一篇列表(List)來作範例,實際應用的語法如下:


#include <list>

using namespace std; //使用 using namespace 關鍵字標明要使用哪個命名空間底下的物件

void main()
{
    list<int> l; //省略掉 std:: 命名空間範疇的關鍵字
    l.push_back(1);
    l.push_back(2);
    l.push_back(3);
    for (const auto& e : l) {
        cout << e << endl;
    }
}
                        

Last updated:

Related Artical List

  1. C/C++教學: 第二十四課 - 遞迴(Recursive)
  2. C/C++教學: 第二十五課 - 列表(List)

Article List