C++ - 标准库 "merge" 函数 的 用法及代码
来源:互联网 发布:火爆网络的ann全集 编辑:程序博客网 时间:2024/06/04 14:57
标准库 "merge" 函数 的 用法及代码
merge() 是 C++ 标准库的函数, 主要实现函数的排序和合并, 不仅仅是合并, 具体要求参照标准库.
网址: http://www.cplusplus.com/reference/algorithm/merge/?kw=merge
如果是通用方法, 则第二个容器依然存在; 如果是链表方法, 则第二个容器被破坏, 存入第一个容器.
输入的两个序列 必须 符合谓词的要求,默认谓词是 "<"; 也可以使用自定义谓词, 例如 ">" 的函数.
由于编译器无法检查输入容器是否符合要求(符合谓词), 所以必须需要程序提前判断, 否则出错.
下面代码包含了两种方法, 一种是默认谓词, 一种是自定义谓词, 注意 输入容器的顺序.
代码(VS2012)
#include "stdafx.h"#include <iostream>#include <algorithm>#include <array>#include <list>using namespace std;bool comp(const int i, const int j){return i>j;}int main(void) {/*自定义谓词*/std::array<int, 4> ai1 = {1, 3, 4, 5};std::list<int> lsti1;for(const auto& i : ai1)lsti1.push_front(i); //从大到小std::array<int, 4> ai2 = {2, 6, 7, 8};std::list<int> lsti2;for(const auto& i : ai2)lsti2.push_front(i);lsti1.merge(lsti2, comp);std::cout << "merge(>) : ";for(const auto& i : lsti1)std::cout << i << " ";std::cout << std::endl;/*默认谓词*/std::array<int, 4> ai1d = {1, 3, 4, 5};std::list<int> lsti1d;for(const auto& i : ai1d)lsti1d.push_back(i); //从小到大std::array<int, 4> ai2d = {2, 6, 7, 8};std::list<int> lsti2d;for(const auto& i : ai2d)lsti2d.push_back(i);lsti1d.merge(lsti2d);std::cout << "merge(<) : ";for(const auto& i : lsti1d)std::cout << i << " ";std::cout << std::endl;return 0;}
- C++ - 标准库 "merge" 函数 的 用法及代码
- C 标准库的 setlocale() 函数用法
- C 标准库的 setlocale() 函数用法
- C 标准库的 setlocale() 函数用法
- c标准库中qsort函数用法
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C#Dispose的标准代码以及CloseHandle()函数的使用
- 【工具】内嵌浏览器awesomium(待完善)
- 手动下载Android开发SDK
- 使用 jQuery Mobile 与 HTML5 开发 Web App ——开发原则
- 新人毕业,老人跳槽:5位同学简历中的问题
- sqlserver中判断表或临时表是否存在
- C++ - 标准库 "merge" 函数 的 用法及代码
- 再次写给我们这些浮躁的程序员 (转自http://blog.csdn.net/yzsind/article/details/6168854)
- uva 291 简单搜索(一笔画)
- log4j 使用
- jQuery插件的写法
- Theme.Holo主题 中tab同时显示图片和文字
- 如何修改oracle数据库用户密码
- linux mmc 驱动结构
- 8255A 端口地址的确定