🚀Iterater

跌代器

Iterator 像是一個比較聰明的 pointer arrow-up-right可以指到容器內任何一個位置,然後操作那個位置的資料。

要印出整個陣列有兩個方法 :

// 假如有一個陣列長這樣
// len = 5
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int);


/*========== 用 index(operator) 印出整個陣列 ==========*/

// 很簡單,應該也是大家最常用的方法
for(int i=0 ; i<len ; i++){
    cout << arr[i] << endl;
}


/*========== 用 pointer(指標) 印出整個陣列 ==========*/

// begin 指向的是 1 那個位置
// end 指向的是 5 後面沒有東西的那個位置
int *begin = arr + 0;
int *end = arr + len;

int *ptr;
for(ptr=begin ; ptr!=end ; ptr++){
    cout << *ptr << endl;   // 1, 2, 3, 4, 5
}

同樣要印出整個 Vector 也有兩個方法 :

這下大家可能會有一個疑惑惹,明明Iterator在使用上就比較麻煩,語法也比較複雜,為甚麼我們還要使用它呢? 因為有些強大ㄉ容器是不能使用operatorarrow-up-right存取ㄉ,像是 : set, map, list....

接下來Iterator還有很多用法,會在下一篇容器看到的🎮。

Last updated