for i = 0...n
呢個方法呢,其實只適用於一D data structure係stored in contiguous memory,例如array咩意思呢,假設你有以下嘅數據 A:
memory address: data
---------------------------------
0000: 1
0001: 2
0002: 3
0003: 4
-----------------------------------
咁其實你係可以將每個數據嘅位置寫做第一個數據嘅位置 + 某個offset (0, 1, 2, ... n) 去攞到每一個數據,姐係
A[0 + i], i = 0, ..., n
而你可以咁做係因為基於呢堆數據係連續咁儲存係memory裡面
但對於其他data structure,呢個假設未必成立
例如linked list咁,你就要儲存下一個node嘅位置係而家呢個node裡面,咁你先可以access到下一個node,從而traverse到成個container
而其他data structure亦有佢自己traverse element嘅方式,呢樣野係cas dependent嘅
為左方便programmer寫code去traverse唔同嘅container呢,D人就諗到不如發明一舊叫iterator,programmer揸住呢個iterator就可以用同一個方式traverse唔同嘅container啦,而呢個container實際上內部點樣攞到下一個element嘅位置呢,就交比呢個iterator內部嘅唔同implementation去做啦