使用 list 时,需包含有文件< list>
.
// 默认构造函数,长度为0
list lis1;
// 定长构造函数及初始值
list lis2(50);
list lis3(50,1);
// 复制构造函数
list lis4(lis3);
list lis5(lis3.begin(),lis3.end());
// 将 list中元素变为n个val。
list.assign(n,val)
// 将list2中的从list2.begin()到list2.end()之间的数值赋值给list1。
list1.assign(list2.begin(),list2.end())
// 获取list长度
list.size();
// 将list长度改为只容纳n个元素,超出部分删除
list.resize(n);
// 将list长度改为只容纳n个元素,并赋初值val,超出部分删除
list.resize(n,val)
// 通过迭代器访问链表
for(list::iterator iter = list.begin(); iter != list.end(); iter++){
cout << *iter;
}
// 在list首部插入
list.push_front();
// 在list尾部插入
list.push_back();
// 在list的开始位置插入10。
list.insert(list.begin(),10);
// 在list的开始位置插入2个20。
list.insert(list.begin(),2,20);
// 在list1的开始位置插入list2的从开始到结束的所有位置的元素
list1.insert(list1.begin(),list2.begin(),list2.end());
// 删除list首部
list.pop_front();
// 删除list尾部
list.pop_back();
// 将list的第一个元素删除。
list.erase(list.begin());
// 将list的从begin()到end()之间的元素删除。
list.erase(list.begin(),list.end());
// 原理是依次将非删去元素复制到前面,建议使用自带函数
remove(v.begin(), v.end(), 5);
list.remove(5)
// 交换两个链表的元素
swap(list1, list2)
// 反转链表中的元素
reverse(list.begin(), list.end());
// 合并两个链表元素并排序
list1.merge(list2,greater());
// 默认情况下升序排列
sort(list.begin(), list.end());
// 可自定义排序方式(此为降序)
bool Comp(const int &a, const int &b){
return a>b;
}
sort(list.begin(), list.end(), Comp);
// 亦可函数内部自定义
sort(list.begin(), list.end(), [](int &a, int &b){return a>b;});
// 清除链表中的数据
list.clear();
// 判断链表是否为空
list.empty();