与其他的容器不一样,链表类型的list和forward_list定义了几个成员函数形式的算法,这些函数和前面的所总结的通用算法不同,对于list来说,最好使用自己的特有算法,下面介绍一下主要的几个算法,这些算法的返回值都是void:

其中lst和lst2都是链表结构:

lst.merge(lst2)                                    将来自lst2的元素合并到lst。lst和lst2都必须是有序的。

lst.merge(lst2, comp)                           元素将从lst2中删除。在合并之后,lst2变为空。第一个

版本使用<运算符;第二个版本使用给定的比较操作。

lst.remove(val)                                    调用erase删除掉与给定值相等(==)或令一元谓词为真

lst.remove_if(pred)                              的每一个元素。

lst.reverse()                                        反转lst中元素的顺序。

lst.sort()                                         使用<或者给定的操作排序元素

lst.sort(comp)

lst.unique()                                       调用erase删除同一个值的连续拷贝。第一个版本使用==

lst.unique(pred)                                 第二个版本使用给定的二元谓词。

list还定义了splice算法,这是链表结构所特有的。

lst.splice(args)或flst.splice_after(args)

(p, lst2)                                            p是一个指向lst中元素的迭代器,或一个指向flst首前位置的迭代器。函数将

lst2的所有元素移动到lst中p之前的位置或者flst中p之后的位置。将元素从lst2

中删除。lst2的类型必须与lst和flst相同,且不能是同一个链表。

(p, lst2, p2)                                      p2是一个指向lst2中位置的有效的迭代器。将p2指向的元素移动到lst中,或者将p2之后的元素

移动到flst中。lst2可以是与lst和flst相同的链表。

(p, lst2, b, e)                                    b和e必须表示lst2中的合法范围。将给定范围中的元素从lst2移动到lst或者flst。lst2与lst(或者flst)

可以是相同的链表,但是p不能指定给定范围中的元素。

C++11中list特有版本的算法的更多相关文章

  1. 正则表达式简介及在C++11中的简单使用

    正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex.regexp.RE.regexps.regexes.regexen. 正则表达式是一种 ...

  2. 【转】正则表达式简介及在C++11中的简单使用教程

    正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同 ...

  3. C++11标准中常用到的各种算法汇总.

    在C++11标准中定义了很多算法,这些算法可以让我们很方便的操作各种容器和数组,这里要注意一下,这些算法操作的并非容器,而是迭代器,然后通过迭代器来操作容器中的数据,算法本身并不会关注容器中保存的数据 ...

  4. C++ 11 中的右值引用

    C++ 11 中的右值引用 右值引用的功能 首先,我并不介绍什么是右值引用,而是以一个例子里来介绍一下右值引用的功能: #include <iostream>    #include &l ...

  5. 在Windows 8.1及IE 11中如何使用HttpWatch

    提示:HttpWatch现已更新至v9.1.8,HttpWatch v9.1及以上的版本现都已支持Windows 7,8,8.1和IE 11. 如果你的HttpWatch专业版授权秘钥允许进入vers ...

  6. [转载] C++11中的右值引用

    C++11中的右值引用 May 18, 2015 移动构造函数 C++98中的左值和右值 C++11右值引用和移动语义 强制移动语义std::move() 右值引用和右值的关系 完美转发 引用折叠推导 ...

  7. c++11 中的 move 与 forward

    [update: 关于左值右值的另一点总结,请参看这篇] 一. move 关于 lvaue 和 rvalue,在 c++11 以前存在一个有趣的现象:T&  指向 lvalue (左传引用), ...

  8. C++11中的右值引用

    原文出处:http://kuring.me/post/cpp11_right_reference May 18, 2015 移动构造函数 C++98中的左值和右值 C++11右值引用和移动语义 强制移 ...

  9. css中判断IE版本的语句

    css中判断IE版本的语句<!--[if gte IE 6]> Only IE 6/+ <![endif]-->: 1. <!--[if !IE]> 除IE外都可识 ...

随机推荐

  1. jquery 加法 乘法运算 精确计算函数

    int类型相加不会出现问题,但小数点相加就会出现问题 //乘法函数 var accMul = function(arg1, arg2){ var m=0,s1=arg1.toString(),s2=a ...

  2. 自设table表格,获取内容,并经弹出框的url传参,获取结果显示在弹出框,并加载合计

    table表格,选择框 form id="editForm1"> <table class="table_form"> <td > ...

  3. jquery性能优化的38个建议

    一.注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); ...

  4. Xamarin引用第三方包错误解决方法

    http://www.cnblogs.com/ThenDog/p/7623720.html

  5. sqlServer遇到的问题

    重置自增列:dbcc checkident(表名,reseed,数字(初始值))

  6. Django之AppConfig源码学习

    class AppConfig(object) 这个基类描述了一个Django应用以及它的配置信息. 属性: name:django应用的完整python路径,eg.'django.contrib.a ...

  7. Python HTTP库requests中文页面乱码解决方案!

    http://www.cnblogs.com/bitpeng/p/4748872.html Python中文乱码,是一个很大的坑,自己不知道在这里遇到多少问题了.还好通过自己不断的总结,现在遇到乱码的 ...

  8. oracle中通过sql查询sde中图形面积

    select st_area(shape) from XAG2011430200000M_DLTB t where objectid=330

  9. ScalaPB(3): gRPC streaming

    接着上期讨论的gRPC unary服务我们跟着介绍gRPC streaming,包括: Server-Streaming, Client-Streaming及Bidirectional-Streami ...

  10. AUTOSAR-关于配置文件的思考

    基于Can: 1. Can_Cfg.h contains compile time configurations. It should be included by Can.h which is sp ...