C++11中list特有版本的算法
与其他的容器不一样,链表类型的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特有版本的算法的更多相关文章
- 正则表达式简介及在C++11中的简单使用
正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex.regexp.RE.regexps.regexes.regexen. 正则表达式是一种 ...
- 【转】正则表达式简介及在C++11中的简单使用教程
正则表达式Regex(regular expression)是一种强大的描述字符序列的工具.在许多语言中都存在着正则表达式,C++11中也将正则表达式纳入了新标准的一部分,不仅如此,它还支持了6种不同 ...
- C++11标准中常用到的各种算法汇总.
在C++11标准中定义了很多算法,这些算法可以让我们很方便的操作各种容器和数组,这里要注意一下,这些算法操作的并非容器,而是迭代器,然后通过迭代器来操作容器中的数据,算法本身并不会关注容器中保存的数据 ...
- C++ 11 中的右值引用
C++ 11 中的右值引用 右值引用的功能 首先,我并不介绍什么是右值引用,而是以一个例子里来介绍一下右值引用的功能: #include <iostream> #include &l ...
- 在Windows 8.1及IE 11中如何使用HttpWatch
提示:HttpWatch现已更新至v9.1.8,HttpWatch v9.1及以上的版本现都已支持Windows 7,8,8.1和IE 11. 如果你的HttpWatch专业版授权秘钥允许进入vers ...
- [转载] C++11中的右值引用
C++11中的右值引用 May 18, 2015 移动构造函数 C++98中的左值和右值 C++11右值引用和移动语义 强制移动语义std::move() 右值引用和右值的关系 完美转发 引用折叠推导 ...
- c++11 中的 move 与 forward
[update: 关于左值右值的另一点总结,请参看这篇] 一. move 关于 lvaue 和 rvalue,在 c++11 以前存在一个有趣的现象:T& 指向 lvalue (左传引用), ...
- C++11中的右值引用
原文出处:http://kuring.me/post/cpp11_right_reference May 18, 2015 移动构造函数 C++98中的左值和右值 C++11右值引用和移动语义 强制移 ...
- css中判断IE版本的语句
css中判断IE版本的语句<!--[if gte IE 6]> Only IE 6/+ <![endif]-->: 1. <!--[if !IE]> 除IE外都可识 ...
随机推荐
- 重定向和servlet生命周期
重定向(1)什么是重定向服务器通知浏览器向一个新的地址发送请求.注:可以发送一个302状态码和一个Location消息头.(该消息头包含了一个地址,称之为重定向地址),浏览器收到之后,会立即向重定向地 ...
- MySQL MEB常见用法
1. 备份成镜像 备份: ./mysqlbackup --socket=/usr/local/mysql-advanced--linux-glibc2.-x86_64/data/mysql.sock ...
- 在VirtualBox中的Ubuntu中添加新硬盘
步骤如下: 1. 关闭Ubuntu系统,打开VistualBox,"设置"->"存储"->"添加虚拟硬盘" 2. 启动Ubunt ...
- Angular集成admin-lte框架
其实上一篇里面提到的集成datatables.net就是admin-lte里面的一个子插件,不过这个子插件,他是自带types定义文件的,admin-lte这个东西在DefinitelyTyped里面 ...
- Linux基础命令归纳大全
Linux发行版本:基于linux内核提供桌面环境及办公套件的操作系统 (Linux内核只有一个) 1. 启动终端的快捷键: ctr + alt + t 2. 终端字体放大: ctr+shift+ ...
- jQuery的学习笔记2
jQuery学习笔记 Day two Chapter two 选择器 类选择器 语法结构:$(“.classname”) javascript里面没有类选择器所以这个时候使用jQuery会更加的简便 ...
- HTML学习笔记 day two
HTML学习笔记 day two Charter three网站中的文本样式标签 3.1设置标题字体 语法结构:<h#>标题文字</h#> 注:其中的#可以为1,2,3,4,5 ...
- RabbitMQ 安装 Your installed version of Erlang (6.2) is too old. Please install a more recent version.
windows安装RabbitMQ时在安装完Erlang语言开发包后,再安装RabbitMQ时报错: Your installed version of Erlang (6.2) is too old ...
- Pycharm的相关设置和快捷键集合
原文参考地址:python 环境搭建及pycharm的使用 一.相关设置 1.主题和字体 主题选这个 字体大小在这里设置 二.快捷键 1.编辑(Editing)Ctrl + Space 基本的代码完成 ...
- 解决AES算法CBC模式加密字符串后再解密出现乱码问题
问题 在使用 AES CBC 模式加密字符串后,再进行解密,解密得到的字符串出现乱码情况,通常都是前几十个字节乱码: 复现 因为是使用部门 cgi AESEncryptUtil 库,找到问题后,在这里 ...