12-1 為什麼需要 Iterator?
在學 STL 之前,我們通常用「下標」存取陣列:
int a[] = {3, 1, 4, 1, 5};
for (int i = 0; i < 5; i++)
{
cout << a[i] << " ";
}
容器種類很多(vector、list、set、map……),它們的內部結構不同。傳統的作法是針對不同的容器撰寫其存取元素的成員函數。但是這樣一來,每種容器都有自己的介面,對於寫程式的人來說是個很大的困擾。
Iterator(迭代器) 就是一個「統一的指標」,讓你用相同的寫法走訪不同的容器。