zoukankan      html  css  js  c++  java
  • list-splice

    ////////////////////////////////////////
    //      2018/04/27 11:09:23
    //      list-splice
    
    // merge two lists
    #include <iostream>
    #include <list>
    #include <algorithm>
    #include <iterator>
    
    using namespace std;
    
    template<class T>
    class Print{
    public:
        void operator ()(T& t){
            cout << t << " ";
        }
    };
    //========================================
    
    int main(){
        list<int> li1, li2, li3,li4;
        Print<int> print;
    
        for (int i = 1; i <= 5; i++){
            li1.push_back(i);
            li2.push_back(i + 5);
            li3.push_back(i + 10);;
            li4.push_back(i + 15);
        }
    
        cout << "li1:";
        for_each(li1.begin(), li1.end(),print);
        cout << endl;
    
        cout << "li2:";
        for_each(li2.begin(), li2.end(), print);
        cout << endl;
    
        cout << "li3:";
        for_each(li3.begin(), li3.end(), print);
        cout << endl;
    
        cout << "li4:";
        for_each(li4.begin(),li4.end(), print);
        cout << endl;
    
        // splice 连接
        li1.splice(li1.end(),li2);
        cout << "li1:";
        for_each(li1.begin(), li1.end(), print);
        cout << endl;
    
        cout << "li2:";
        for_each(li2.begin(), li2.end(),print);
        cout << endl;
    
        li1.splice(li1.end(), li3, li3.begin(), li3.end());
        cout << "li1:";
        for_each(li1.begin(), li1.end(), print);
        cout << endl;
    
        list<int>::iterator it;
        it = find(li4.begin(), li4.end(), 18);
        li1.splice(li1.begin(),li4,it);
        cout << "li1:";
        for_each(li1.begin(), li1.end(), print);
        cout << endl;
    
        cout << "li4:";
        for_each(li4.begin(), li4.end(), print);
        cout << endl;
        return 0;
    }
    
    /*
    OUTPUT:
        li1:1 2 3 4 5
        li2:6 7 8 9 10
        li3:11 12 13 14 15
        li4:16 17 18 19 20
        li1:1 2 3 4 5 6 7 8 9 10
        li2:
        li1:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
        li1:18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
        li4:16 17 19 20
    */ 
  • 相关阅读:
    linux安装及入门
    20165103学习基础和C语言基础调查
    20165103 我期望的师生关系
    自旋锁,偏向锁,轻量级锁 和 重量级锁
    volatile的使用及其原理
    (PASS)什么是原子性和原子性操作?
    Linux操作系统 和 Windows操作系统 的区别
    Linux常用命令大全(很全面)
    CAS机制总结
    CAS -- ABA问题的解决方案
  • 原文地址:https://www.cnblogs.com/laohaozi/p/12537930.html
Copyright © 2011-2022 走看看