/**
* 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 阅读(647)
评论(0) 编辑 收藏 引用 所属分类:
C++