首页 > 代码库 > 数据结构学习之路一(list)

数据结构学习之路一(list)

学习自//http://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.html

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<vector>
#include<list>
using namespace std;

int main()
{
int a1[5] = {1,2,3,4,5};
list<int> a(a1,a1+5),a2,a3;
a2 = a;//赋值运算符
list<int>::iterator it;
printf("链表a2的值全部输出:");
for(it = a2.begin ();it != a2.end ();it ++)
{
printf("%d ",*it);
}
puts("");
//元素拷贝
a3.assign (2,10);
for(it = a3.begin ();it != a3.end ();it ++)
{
printf("%d ",*it);
}
puts("");
//第一个,最后一个,总个数,最大的数
printf("%d %d %d %d",a.front(),a.back (),a.size (),a.max_size ());

a.insert(a.begin (),5); // 在a.begin()插入5
a.insert(a.begin (),2,5); // 在a.begin()插入2个5

printf("插入数值后链表a的值全部输出:");
for(it = a.begin ();it != a.end ();it ++)
{
printf("%d ",*it);
}
puts("");

a.erase(a.begin ());//删除在a.begin ()的元素

printf("删除在a.begin ()的元素链表a的值全部输出:");
for(it = a.begin ();it != a.end ();it ++)
{
printf("%d ",*it);
}
puts("");

a.unique(); //删除相邻的元素

printf("删除相邻的元素链表a的值全部输出:");
for(it = a.begin ();it != a.end ();it ++)
{
printf("%d ",*it);
}
puts("");
a.sort ();//默认升序 自定义:c.sort(comp)
printf("排序后链表a的值全部输出:");
for(it = a.begin ();it != a.end ();it ++)
{
printf("%d ",*it);
}
puts("");
a.clear();//清除
return 0;
}

数据结构学习之路一(list)