王骏的博客
编程、网络技术点滴...

公告

逐渐将VC知识库的博客迁移到这里!

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

程序员博客   首页  新随笔  订阅  管理  登录 
 
王骏的博客 阅读(1257) 评论(7)
list<int> mylist;
mylist.push_back(
1);
mylist.push_back(
2);
mylist.push_back(
3);
mylist.push_back(
1);
mylist.push_back(
2);

// 删除元素2

// 方式一

mylist.remove(
2);

// 方式二

mylist.erase(remove_if(mylist.begin(), mylist.end(), not1(bind2nd(modulus
<int>(), 2))), mylist.end());

// 方式三

list
<int>::iterator Iter;
list<int>::iterator EndIter = mylist.end();
for(Iter = mylist.begin(); Iter != EndIter; )
    
{
        
if(*Iter == 2)
            Iter = mylist.erase(Iter);

        
else
            Iter
++;
    }


打印出结果
list<int>::iterator Iter;
list<int>::iterator EndIter = mylist.end();
for(Iter = mylist.begin(); Iter != EndIter; Iter++)
{
    cout 
<< *Iter << endl;
}

三种方式的速度比(数值越小速度越快)
1 : 1.63 : 1.17
注:这里的速度比较是简单的、粗糙的比较。