zoukankan      html  css  js  c++  java
  • 链表(系统学习)

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #include<vector>
    #include<map>
    #include<cstdlib>
    #include<fstream>
    #include<time.h>
    #include<list>
    using namespace std;
    typedef long long LL;
    const LL mod=1e9+7;
    const LL INF=1e9+7;
    const int maxn=1e5+50;
    int main()
    {
        list<int>b;//构建一个空list
        cout<<b.empty()<<endl;//输出 1
    
        list<int>a(10,1);//定义10个整形元素向量 初值都为1
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出十个1
        }
        cout<<endl;
        list<int>c(a);//把list a 全部赋值给 c
        for(list<int>::iterator it=c.begin();it!=c.end();it++)
        {
            cout<<*it<<" ";//输出十个1
        }
        cout<<endl;
        cout<<a.size()<<endl;//大小
    
        a.resize(5);//调整a的大小为5
        cout<<a.size()<<endl;
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出5个1
        }cout<<endl;
        a.resize(10,2);//调整a的大小为10  多则删 少则补2
        cout<<a.size()<<endl;
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出5个1 5个2
        }cout<<endl;
        a.push_back(3);//   尾部插入3
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出5个1 5个2 一个3
        }cout<<endl;
        a.insert(a.begin(),5);//指定位置前插入一个数
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出一个5 5个1 5个2 一个3
        }cout<<endl;
        a.insert(a.begin(),3,6);//在 指定位置前插入3个6
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出三个6 一个5 5个1 5个2 一个3
        }cout<<endl;
        a.push_front(7);//头部插入一个元素
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出一个7 三个6 一个5 5个1 5个2 一个3
        }cout<<endl;
        a.erase(a.begin());//删除指定位置元素
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//输出一个7 三个6 一个5 5个1 5个2 一个3
        }cout<<endl;
        a.erase(a.begin(),a.end());//删除两个迭代器之间的元素
    
        for(int i=1;i<=10;i++)
        {
            a.push_back(i);
        }
        list<int>::iterator pos;
        pos=a.begin();
        cout<<*pos<<endl;//输出1
        advance(pos,5);//给迭代器指定一个位置
        cout<<*pos<<endl;//
        a.pop_back();//删除尾部元素
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        a.pop_front();//删除头部元素
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        a.assign(10,100);//重新赋值  以前的清空 赋值10个100
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
    
        cout<<a.front()<<endl;//返回第一个数
        cout<<a.back()<<endl;//返回最后一个数
        a.clear();//清空链表
    
        a.assign(10,5);
        b.assign(10,6);
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        for(list<int>::iterator it=b.begin();it!=b.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        a.swap(b);//交换两个链表的内容
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        for(list<int>::iterator it=b.begin();it!=b.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
    
        a.clear();
        for(int i=1;i<=5;i++)
        {
            a.push_back(i);
        }
        b.clear();
        for(int i=1;i<=5;i++)
        {
            b.push_back(i*10);
        }
        pos=a.begin();
        ++pos;
        a.splice(pos,b);//在指定位置前插入b链表 并且把b链表变为空
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        for(list<int>::iterator it=b.begin();it!=b.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        b.splice(b.begin(),a,pos);//将a的第pos个位置的数赋值给b 同时a中删除这个元素
        for(list<int>::iterator it=b.begin();it!=b.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        a.reverse();//反转
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        a.sort();//从小到大排序
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        a.unique();//删除重复元素
        a.merge(b);
        for(list<int>::iterator it=a.begin();it!=a.end();it++)
        {
            cout<<*it<<" ";//
        }cout<<endl;
        return 0;
    }
    当初的梦想实现了吗,事到如今只好放弃吗~
  • 相关阅读:
    使用MySQL存储过程连续插入多条记录
    为什么编程语言以及数据库要从1970年1月1日开始计算时
    关于shtml页面include问题解决方案
    简单实用的FTP操作类
    js实现完美身份证号有效性验证
    .htaccess文件的建立和rewrite_module的启用
    php冒泡排序
    php实现汉诺塔问题(递归)
    简单的mysql数据库备份程序
    选择排序的php实现
  • 原文地址:https://www.cnblogs.com/caijiaming/p/11631106.html
Copyright © 2011-2022 走看看