码迷,mamicode.com
首页 > 编程语言 > 详细

C++复习链表

时间:2020-02-05 17:59:30      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:out   lis   自定义   链表排序   pop   back   turn   插入   i++   

链表list


 

  • 建立
  • 头文件<list>
  • list<string>l;
  • list<int>l(8,0);
  • vector<int>v;
  • list<int>l(v.begin(),v.end());
  • 操作
  • 插入
  • l.push_back(a);——在链表的后面添加元素
  • l.push_front(a);——在链表的前面添加元素
  • l.insert(l.begin()+2,1)——在第二个元素前插入1
  • l.insert(l.begin()+2,3,1)——在第二个元素前插入3个1
  • 删除
  • l.clear();——清空链表
  • l.pop_back();——删除最后一个元素
  • l.erase(l.begin()+1)——删除一个元素
  • l.erase(l.egin(),l.end())——删除一个范围内的元素
  • l.size();——返回链表大小
  • l.empty();——返回链表是否为空
  • 其他
  • l.front();——返回链表首
  • l.back();——返回链表尾
  • l.reverse();——反转链表
  • l.sort();——链表排序              //结构体内可自定义排序规则,即重载小于号
  • #include<iostream>
    #include<list>
    #include<string>
    using namespace std;
    struct student{
        int grade,age;
        string name;
        friend bool operator < (student a, student b){
            return a.grade < b.grade; 
        }
    };
    int main(){
        list<student>l;
        student n[4] = {
            {3,3,"Kite"},
            {2,1,"Jack"},
            {0,7,"Bob"},
            {5,6,"Rose"}
        };
        for(int i=0;i<4;i++)
        l.push_back(n[i]);
        l.sort();
        for(auto i:l){
            cout << i.name <<   << i.grade << endl;
        }
        return 0;
    } 

     

  • l.swap(l2)——交换两个链表
  • 遍历
  • (1)迭代器遍历
  • for(auto it = l.begin();it != l.end();it++);
  • (2)auto遍历
  • for(auto i:l)
  • (3)for_each遍历
  • for_each(l.begin();l.end();Print);
  • 查找
  • count();
  • count_if();
  • find();
  • find_if();
  • search();      //详见STL通用算法

C++复习链表

标签:out   lis   自定义   链表排序   pop   back   turn   插入   i++   

原文地址:https://www.cnblogs.com/Cmathe/p/12263239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!