posts - 18,  comments - 2,  trackbacks - 0
/**
 * 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 阅读(1318) 评论(0)  编辑 收藏 引用 所属分类: C++

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



<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜