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()

  • 相关阅读:
    菜鸟快速自学java00之变量类型
    php 接口和抽象类
    java 三大特性之多态性
    设计模式
    依赖注入
    Java设计模式工厂模式
    php 设计模式之策略模式
    大数的概述
    熟悉常用的Linux操作
    GridView动态添加列
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12787371.html
Copyright © 2011-2022 走看看