# 12-1 為什麼需要 Iterator？

在學 STL 之前，我們通常用「下標」存取陣列：

```c++
int a[] = {3, 1, 4, 1, 5};
for (int i = 0; i < 5; i++)
{
    cout << a[i] << " ";
}
```

容器種類很多（vector、list、set、map……），它們的內部結構不同。傳統的作法是針對不同的容器撰寫其存取元素的成員函數。但是這樣一來，每種容器都有自己的介面，對於寫程式的人來說是個很大的困擾。

Iterator（迭代器） 就是一個「統一的指標」，讓你<u>**用相同的寫法走訪不同的容器**</u>。

<link rel=stylesheet type="text/css" href="https://nlmoodle.ddns.net/css/h.css?v=20240325001">