与其他的容器不一样,链表类型的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选择器面试题

    $("#myELement")    选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("di ...

  2. Vim PHP环境设置文章

    可能有重复: 在ubuntu 上配置vim的PHP开发环境 http://blog.csdn.net/robertaqi/article/details/6117546 手把手教你把Vim改装成一个I ...

  3. 使用Glide以及OkHttp集成

    1.glide的使用: 添加依赖: compile 'com.github.bumptech.glide:glide:3.7.0' 调用代码: ImageView imageView = (Image ...

  4. HDU-5705

    Clock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Problem De ...

  5. SOFA 源码分析 —— 服务引用过程

    前言 在前面的 SOFA 源码分析 -- 服务发布过程 文章中,我们分析了 SOFA 的服务发布过程,一个完整的 RPC 除了发布服务,当然还需要引用服务. So,今天就一起来看看 SOFA 是如何引 ...

  6. 二叉树,AVL树和红黑树

    为了接下来能更好的学习TreeMap和TreeSet,讲解一下二叉树,AVL树和红黑树. 1. 二叉查找树 2. AVL树 2.1. 树旋转 2.1.1. 左旋和右旋 2.1.2. 左左,右右,左右, ...

  7. GitHub学习笔记:分支管理

    GitHub对于每个开发版本都需要有一个分支,默认的分支是master往往被大家保留下来作为主分支,分支类似于进程的一个指针,往往在master这个稳定的主干版本上分出一个或多个正在开发的分支版本,开 ...

  8. scrapy安装过程问题解决、新建项目、调试断点

    一.安装问题 1. 下载速度太慢 使用国外源,下载速度很慢,可以考虑使用豆瓣的镜像下载 pip install -i https://pypi.douban.com/simple/ scrapy 2. ...

  9. Python_socket_TCP

    zServer.py # coding=utf-8 import socket words={'how are you?':'Fine,thank you.', ', 'what is your na ...

  10. ELK 架构之 Logstash 和 Filebeat 安装配置

    上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日 ...