#include "stdafx.h"

#include <iostream>

#include <list>

#include <algorithm>

using namespace std;

int_tmain(int argc, _TCHAR* argv[])

{

list<int> c1,c2,c3,c4;

c1.push_back(3);

c1.push_back(6);

c2.push_back(2);

c2.push_back(4);

c3.push_back(5);

c3.push_back(1);

c4.push_back(40);

c4.push_back(41);

cout<<"c1="<<endl;

copy(c1.begin(),c1.end(),ostream_iterator<int>(cout,""));

cout<<endl;

cout<<"c2="<<endl;

copy(c2.begin(),c2.end(),ostream_iterator<int>(cout,""));

cout<<endl;

c2.splice(c2.begin(),c1);//将链表c1插入到链表c2的链头:第一种使用方式

cout<<"After splice c1 and c2>: c2=: "<<endl;

copy(c2.begin(),c2.end(),ostream_iterator<int>(cout,""));

cout<<endl;

cout<<"After splice c1 and c2: c1="<<endl;

copy(c1.begin(),c1.end(),ostream_iterator<int>(cout,""));

cout<<"可见splice合并后c1中没有内容了"<<endl;

cout<<"c3="<<endl;

copy(c3.begin(),c3.end(),ostream_iterator<int>(cout,""));

cout<<endl;

c2.splice(c2.begin(),c3,c3.begin());//将c3链表的头元素插入c2链表的头部:第二种使用方式

cout<<"After splice c2 and c3: c2=: "<<endl;

copy(c2.begin(),c2.end(),ostream_iterator<int>(cout,""));

cout<<endl;

cout<<"After splice c3="<<endl;

copy(c3.begin(),c3.end(),ostream_iterator<int>(cout,""));

cout<<endl;

cout<<"可见splice后,c3的头元素不在了"<<endl;

cout<<"c4="<<endl;

copy(c4.begin(),c4.end(),ostream_iterator<int>(cout,""));

cout<<endl;

c2.splice(c2.begin(),c4,c4.begin(),c4.end());//将链表c4从开始到结束都合并到c2开始的位置:第三种使用方式

cout<<"After splice c2 and c4: c2=: "<<endl;

copy(c2.begin(),c2.end(),ostream_iterator<int>(cout,""));

cout<<endl;

cout<<"After splice c4="<<endl;

copy(c4.begin(),c4.end(),ostream_iterator<int>(cout,""));

cout<<endl;

cout<<"可见splice合并后c4中没有内容了"<<endl;

return 0;

}

执行结果:

可见:splice与merge最大的不同时,不用排序,也不要求原始链表有序。相同点是,被合并的链表或元素将消失。

链表list容器中通过splice合并链表与merge的不同,及需要注意的问题的更多相关文章

  1. c# 有序链表合并 链表反转

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. [算法]合并链表&删除数组重复项

    合并链表 题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1-> ...

  3. Golang从合并链表聊递归

    从合并链表聊递归 递归是工程师最常见的一种解决问题的方式,但是有时候不容易真正掌握.有人说是看起来很简单,自己写起来会费点劲. 最著名的例子就是斐波那契数列(Fibonacci sequence),通 ...

  4. 2、java数据结构和算法:单链表: 反转,逆序打印, 合并二个有序链表,获取倒数第n个节点, 链表的有序插入

    什么也不说, 直接上代码: 功能点有: 1, 获取尾结点 2, 添加(添加节点到链表的最后面) 3, 添加(根据节点的no(排名)的大小, 有序添加) 4, 单向链表的 遍历 5, 链表的长度 6, ...

  5. php数据结构课程---2、链表(php中 是如何实现单链表的(也就是php中如何实现对象引用的))

    php数据结构课程---2.链表(php中 是如何实现单链表的(也就是php中如何实现对象引用的)) 一.总结 一句话总结: php是弱类型语言,变量即可表示数值,也可表示对象:链表节点的数据域的值就 ...

  6. C语言:将字符串中的字符逆序输出,但不改变字符串中的内容。-在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

    //将字符串中的字符逆序输出,但不改变字符串中的内容. #include <stdio.h> /************found************/ void fun (char ...

  7. C语言:将带头节点的单向链表结点域中的数据从小到大排序。-求出单向链表结点(不包括头节点)数据域中的最大值。-将M*N的二维数组中的数据,按行依次放入一维数组,

    //函数fun功能是将带头节点的单向链表结点域中的数据从小到大排序. //相当于数组的冒泡排序. #include <stdio.h> #include <stdlib.h> ...

  8. python中的数据结构-链表

    一.什么是链表 链表是由一系列节点构成,每个节点由一个值域和指针域构成,值域中存储着用户数据,指针域中存储这指向下一个节点的指针.根据结构的不同,链表可以分为单向链表.单向循环链表.双向链表.双向循环 ...

  9. 【Java心得总结六】Java容器中——Collection

    在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...

随机推荐

  1. ngui点击与场景点击判断

    注:NGUI 组件上加上 BoxCollider 并设置区域大小 public void OnMouseDown()    { if (UICamera.hoveredObject == null) ...

  2. [ES6] Generators

    Example 1: function *topicList(){ yield "ES2015"; yield "Semi-colons: good or bad?&qu ...

  3. 在IIS集成管道中使用OWIN Middleware

    在Katana中启用Windows Authorization OWIN的架构: Host 管理OWIN pipeline上运行的进程 Server 打开一个network socket,,监听请求 ...

  4. (转)CSS 禁止浏览器滚动条的方法

    1.完全隐藏 在里加入scroll="no",可隐藏滚动条:    这个我用的时候完全没效果,不知道是什么原因!不过好多人说这么用可以,大概是用的位置不一样吧   2.在不需要时隐 ...

  5. iOS在MRC工程环境下下使用ARC的方法

  6. nginx配置时的一些问题

    在配置nginx的时候出现的一些问题,在此记录: 1.如何打开nginx服务: 方法1:打开解压的下载文件,双击打开nginx.exe即可(出现闪退,我以为是出问题了,其实是服务已经启动了) 方法2: ...

  7. Ruby和Rails开发环境安装

    更新包管理 sudo apt-get update 安装curl sudo apt-get install curl *安装rvm via curl \curl -L https://get.rvm. ...

  8. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  9. 使用 PHP 读取文本(TXT)文件 并分页显示

    <?php //----------------you should save this file as m.php---------------- session_start(); if (e ...

  10. Android再学习-20141018-布局-进度条

    20141018-Android再学习 对齐至控件的基准线 为了保证印刷字母的整齐而划定的线(四线三格的第三条线). android:layout_alignBaseline 与父控件的四个边缘对齐( ...