zoukankan      html  css  js  c++  java
  • STL:C++标准容器库 :list

    int main()
    {
        list<Student> stulist;
        stulist.push_back(Student("zhangsan",22));
        stulist.push_back(Student("lisi",23));
        stulist.push_back(Student("lisi",53));
        stulist.push_back(Student("liyunlong",52));
        stulist.push_back(Student("kaipao",48));
        stulist.push_back(Student("chuyunfei",51));
    
    //    list<Student>::iterator it;       //ok    遍历
    //    for(it=stulist.begin();it!=stulist.end();it++)
    //        it->showStu();
     #if 0
        it = stulist.begin();
        it++;
        it--;
        (it + 1)->showStu();//error 因为底层是链表不是数组
    #endif
        //list的查找也必须使用通用算法进行查找
        stulist.remove(Student("liyunlong",0)); //删除所有的指定值,调用==操作符重载
        stulist.remove_if(Find_lisi()); //删除所有指定值,调用()操作 符重载
    //    通用算法
        for_each(stulist.begin(),stulist.end(),show);   //使用通用算法进行遍历
    }
        //查重
    //    stulist.unique();//自动调用等号操作符重载
    //    stulist.unique(cmpname);//自定义方式查
    
    //    it = stulist.begin(); //自己定义算法
    //    bool isflag=1;
    //    while((it=find(it,stulist.end(),Student("lisi",0)))!=stulist.end())
    //    {
    //        if(isflag)
    //        {
    //            isflag = false;
    //            it++;
    //        }
    //        else
    //        {
    //            stulist.erase(it++);
    //        }
    //    }
        list<Student> stulist2;
        stulist2.push_back(Student("222",22));
        stulist2.push_back(Student("33",23));
        stulist2.push_back(Student("44",53));
        stulist2.push_back(Student("51",53));
    
    //    stulist.merge(stulist2);//拼接    stulist2内容为空
    //    stulist.splice(stulist.end(),stulist2);//拼接 stulist2内容为空1
        stulist.splice(stulist.end(),stulist2,++stulist2.begin(),--stulist2.end());//
    //    stulist.splice(stulist.end(),stulist2,++stulist2.begin());
        for_each(stulist.begin(),stulist.end(),show);

    list:

    1.底层是链表实现:增删效率高,查询效率低

    2.允许有重复值

    3.无序的容器(不会自动排序)

    4.有自己的sort(),find()

  • 相关阅读:
    一键清理 Nexus 中无用的 Docker 镜像
    python 获取Linux和Windows硬件信息
    基于Docker安装破解版Jira(无坑)
    vim安装vundle时遇到的问题
    SpringBoot注解大全
    SpringBoot 应用JPA中的一些知识点
    记录初学SpringBoot使用Redis序列化的坑
    Spring Boot连接MySql报错
    钉钉扫码登录中的签名算法在python中的实现
    让Linux的history命令显示用户名和时间
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12787371.html
Copyright © 2011-2022 走看看