list
list容器实际上是一个双向链表,可以高效地进行插入删除元素
初始化
list<int> l1; //空链表
list<int> l2(3); // 建一个含三个默认值上0的元素的链表
list<int> l3(5,1); // 建含五个元素的链表,值是1
list<int> l4(l1); // l1的copy链表
list<int> l5(l2.begin(), l2.end());
成员函数
l.begin()l.end()l.rbegin()l.rend()//以上含义略去不表
list.assign(n, num); //将n个num赋值给list
list.assign(Itr.begin(), Itr.end()); //将区间内的元素赋值给list
list.front(); //链表list的第一个元素
list.back(); //链表list的最后一个元素
list.empty(); //判断链表是否为空
list.size(); //返回链表中实际元素个数
list.max_size(); //能容纳的最大元素个数
list.clear(); //清除所有元素
list.insert(pos, num); //在pos位置插入num
list.insert(pos, n, num); //在pos位置插入n个num元素
list.insert(pos, begin, end); //在pos位置插入区间内的元素
list.erase(pos); //删除pos位置的元素
list.push_back(num); //在末尾添加一个元素
list.pop_back(); //删除末尾元素
list.push_front(num); //在开始位置添加一个元素
list.pop_front(); //删除第一个元素
list.resize(n); //重新定义链表的长度,超出原始长度部分用0代替,小于原始部分删除。
list.resize(n, num); //超出原始长度部分用num代替
list1.swap(list2); //交换list1和list2
swap(list1, list2); //同上
list1.merge(list2); //合并两个有序链表并使之有序,释放list2
list1.merge(list2, comp); //按照自定义规则merge
list1.splice(list1.begin, list2); //将list2连接到list1的begin位置,释放list2
list1.splice(list1.begin, list2, list2.begin, list2.end); //将list2[begin,end]位置的元素连接到list1的begin位置,并且在list2中施放掉begin位置的元素
list.remove(num); //删除链表中匹配num的元素
list.remove_if(comp); //删除满足条件的元素
list.reverse(); //反转链表
list.unique(); //删除相同元素
list.sort(); //排序,默认升序
list.sort(comp); //自定义规则排序