/**
* Accelerated C++ 笔记
**/
list容器相当于数据结构中的链表,vector容器相当于顺序表。
vector是为快速随机访问而被优化的,同样地,优化了的list类型,可以让我们在容器的任何位置快速的插入和删除元素。
在vector内部插入或删除元素,为了保持快速随机存取的特性,必须移动位于被插入或删除的元素后面的所有
元素。移动元素意味着,时间复杂度为向量元素个数的二次方。
//用list代替vector:主要是因为插入和删除操作太多
list<Student_info> extract_fails(list<Student_info>& students)
{
list<Student_info> fail;
list<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;
}
list容器的迭代器不支持完全随机访问,所以我们就不能用标准库中sort函数对它进行排序。
对此,list提供了自己的sort成员函数,这个函数使用了 一个优化的算法来为存储在list中的数值排序。
list<Student_info> students
students.sort(compare);//compare函数可以自己定义
posted on 2008-10-04 15:03
xuejzt 阅读(1335)
评论(0) 编辑 收藏 引用 所属分类:
C++