每一種容器類型都定義了自己的迭代器類型。
以vector容器爲例: vector<int>::iterator iter;
另外,每種容器類型還定義了一種const_iterator的類型,該類型只能用於讀取容器內元素,但不能改變其值:
for ( vector< string >::const_iterator iter = test.begin() ; iter != test.end(): ++iter)
cout<< *iter << end; // 正確
但如果想改變其值:
*iter = ""; // 錯誤
再看const 的 iterator:聲明一個const的迭代器時就必須初始化,之後就不能改變它的值:
vector<int> nums(10);
const vector<int>::iterator cit = nums.begin();
*cit = 1; // 正確
++cit ; // 錯誤
這是一個很容易遺忘的技術細節。