目录
1. list的接口与使用
- list对标的是数据结构中的双向带头循环链表
1.1 默认成员函数
构造与拷贝构造
//无参构造
list<int> l1;
//指定个数值构造
list<int> l2(3, 100);
//迭代器区间构造
list<int> l3(l2.begin(), l2.end());
//拷贝构造
list<int> l4(l3);
赋值重载操作符
//给正在定义的对象使用赋值,会自动调用拷贝构造
list<int> l1(3,100);
list<int> l2 = l1;
list3<int> l3;
ls = l1;
1.2 迭代器与容量相关成员函数
迭代器相关
//正向反向迭代器
list<int> l1;
l1.begin();
l1.rbegin();
//const迭代器
l1.cbegin();
l1.crbegin();
容量大小相关
//list的现容量
list<int> l1;
l1.capacity();
//list的现存储数据长度
l1.size();
//理论上的最大长度
l1.max_size();
1.3 存储数据操作相关成员函数
数据操作相关
//返回list的头尾元素
list<int> l1;
l1.front();
l1.back();
list<int> l2(3,10);
//给已存在list使用指定值赋值
//使用指定值
l1.assgin(4, 99);
//使用迭代器区间
l1.assgin(l2.begin(), l2.end());
//头插,头删
l1.push_front(100);
l1.pop_front();
//尾插,尾删
l1.push_back(100);
l1.pop_back();
//指定位置插入
//在指定迭代器位置之前插入一个值
l1.insert(l1.begin(), 100);
//在指定迭代器位置之前插入n个数
l1.insert(l1.begin(), 3, 100);
//在指定迭代器位置之前插入一段迭代器区间
l1.insert(l1.beign(), l2.begin(), l2.end());
//指定位置删除
//删除指定迭代器位置的值
l1.erase(v.begin());
//删除指定的一段迭代器区间
l1.erase(v.begin(), v.begin