/**
* Accelerated C++ 筆記
**/
每一個標準容器,例如向量,都定義了兩種相關的迭代器類型:
container-type::const_iterator
container-type::iterator
這里container-type是諸如vector<Student_info>這樣的容器類型。
如果我們想用一個迭代起來修改存儲在容器中的值,就使用iterator類型;如果我們僅僅需要讀操作,那么就使用const_iterator類型。
//索引方式
for(vector<Student_info>::size_type i = 0; i != students.end(); ++i)
cout << students[i].name << endl;
//迭代器
for(vector<Student_info>::const_iterator iter = students.begin(); iter != students.end(); ++iter){
cout << (*iter).name << endl;
//或者 cout << iter->name << endl;
}
//用迭代器代替索引:效率可能不高
vector<Student_info> extract_fails(vector<Student_info>& students)
{
vector<Student_info> fail;
vector<Student_info>::iterator iter = students.begin();
while(iter != students.end()){
if(fgrade(*iter)){
fail.push_back(*iter);
iter = students.erase(iter);
}
else
++iter;
}
return fail;
}
posted on 2008-10-04 15:13
xuejzt 閱讀(653)
評論(0) 編輯 收藏 引用 所屬分類:
C++