for(vector<student-info>::const-iterator iter=students.begin();iter!=student.end();iter++)
{
cout<<(*iter).name<<endl;
}
每個容器都有一個關聯的iterator
container-type:const-iterator 唯讀
iterator
vector:快速隨機訪問,類似數組
list:適合快速插入和刪除,類似鏈表
list<student> extract_fails(list<student>& students)
{
list<student> fail;
list<student>::iterator iter=students.begin();
while(iter!=students.end())
{
if(fgrade(*iter))
{
fail.push_back(*iter);
iter=students.erase(iter);
}
else
++iter;
}
return fail;
}
list 不能用sort排序 內建了sort排序演算法,用法如下:
list<student> students;
students.sort(compare);
copy函數
copy(buttom.begin(),bottom.end(),back.inserter(ret));
找一個頁面中的連結
vector<string> find_urls(const string &s)
{
vector<string> ret;
typedef string::const-iterator iter;
iter b=s.begin(),e=s.end();
while(b!=e){
b=url_beg(b,e);//發現一個letters
if(b!=e){
iter after=url.end(b.e);//獲得對應的url
ret.push_back(string(b.after));//記住url
b=after;
}
}
return ret;
}
accumulate(v.begin(),v.end(),0.0);//累加函數,屬於<numeric>庫
理解使用演算法和迭代器以及iterators一個首要的重點:演算法只作用於容器中的容器,而非容器本身。
待續......