posts - 18,  comments - 2,  trackbacks - 0
/**
 * 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++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理



<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜