链表的操作

来源:互联网 发布:getscript 获得js源码 编辑:程序博客网 时间:2024/05/21 17:06
/*与vector相比多了7个函数*/
/*merge(),remove(),reverse(),remove_if(),splice(),unique(),sort()*/
#include<iostream>
#include<stdio.h>
using namespace std;
#include<list>
int Is(int x)
{
    if(x==0)
        return 1;
    return 0;
}
int main()
{
    list<int>L,L2;
    int a[5]={0,1,2,9,0};
    L.assign(a,a+5);
    list<int>::iterator pos;
    pos=L.begin();
    for(;pos!=L.end();pos++)
        printf("%d\n",*pos);
    int i;
   /* for(i=1;i<=5;i++)
        printf("%d\n",L[i-1]);
        不支持随机存取操作*/
    list<int>L1(5,2);
    L.merge(L1);//默认为升序
    pos=L1.begin();
    for(;pos!=L1.end();pos++)
        printf("%d\n",*pos);
    printf("sdfgsdfg\n");
    L.unique();//删除相邻的重复元素;
    L.remove_if(Is);//按照条件删除
    L.reverse();//进行倒置
    L.sort();//进行排序
    L2.assign(5,2);
    L.splice(++L.begin(),L2,L2.begin(),L2.end());
//splice(pos,l2),splice(pos,l2,pos)
    pos=L.begin();
    for(;pos!=L.end();pos++)
        printf("%d\n",*pos);
    return 0;
}
0 0
原创粉丝点击