1.头文件
#include<list>
2.函数构造
list<int> L0// // 空链表
list<int> L1(9)// // 建一个含9个默认值是0的元素的链表
list<int> L2(5,1)// // 建一个含5个元素的链表,值都是1
list<int> L3(L2)// // 建一个L2的copy链表
list<int> L4(L0.begin(), L0.end())建一个含L0一个区域的元素
3.常用函数
push_front(x)//把元素x推入(插入)到链表头部
push_back(x)//把元素x推入(插入)到双向队列的尾部
pop_front()//弹出(删除)双向队列的第一个元素
pop_back()//弹出(删除)双向队列的最后一个元素
merge()//合并两个链表并使之有序
unique()//删除相邻重复元素
sort()//对链表排序,默认升序
splice()//对两个连表进行结合(三个重载函数),结合后第二个链表清空
remove_if()//删除满足条件的元素(遍历一次链表),参考为自定义的回调函数
assign()//分配值
reverse()//反转链表
4.使用举例
#include <list>
#include <functional>
#include <iostream>
#include <algorithm>
using namespace std;
void list_print(list<int> L)
{
list <int>::iterator it;
for (it=L.begin(); it!=L.end(); it++)
{
cout<<*it<<endl;
}
}
bool my_list(const int &value)
{
return value<5;
}
int main()
{
list<int> L0; // 空链表
list<int> L1(9); // 建一个含9个默认值是0的元素的链表
// list_print(L1);
list<int> L2(5,1); // 建一个含5个元素的链表,值都是1
// list_print(L2);
list<int> L3(L2); // 建一个L2的copy链表
// list_print(L3);
list<int> L4(L0.begin(), L0.end());//建一个含L0一个区域的元素
// list_print(L4);
list <int>::iterator it;
L1.assign(4,3);
// list_print(L1);
L1.push_back(5);
L1.push_front(6);
// list_print(L1);
L1.remove(3);
// list_print(L1);
for (int i=0; i<10; i++)
{
L1.push_back(i);
L3.push_front(i);
L4.push_back(i+1);
}
L1.remove_if(my_list);
// list_print(L1);
L2.resize(8);//L2 用默认值0填补
// list_print(L2);
L2.resize(10,5);//L2 用5填补
// list_print(L2);
L2.reverse();
// list_print(L2);
L2.sort();
// list_print(L2);
L2.merge(L1);
// list_print(L2);
L2.insert(L2.begin(),9);
L2.insert(L2.begin(),2,9);//在指定位置插入一个或多个元素
return 0;
}