目录
初始化
使用assign函数初始化.
l_num.assign(3, 5);
l_data.assign({1, 2, 3, 4});
或者定义的时候就初始化:
list<int> l_data{1,2,3,4,5};
追加和删除
l_num.push_back(10); // 向后追加
l_num.push_front(12); // 向前追加
l_num.pop_back(); // 删除最后一个
l_num.pop_front(); // 删除第一个
迭代器
m_Bit = l_data.begin(); // 开始迭代器
m_Eit = l_data.end(); // 结束迭代器
m_cBit = l_data.cbegin(); // const 开始迭代器
m_cEit = l_data.cend(); // const 结束迭代器
m_RBit = l_data.rbegin(); // 从后向前begin
m_RFit = l_data.rend(); // 从后向前end
m_cRBit = l_data.crbegin(); // const 从后向前begin
m_cRFit = l_data.crend(); // const 从后向前end
常用的常量
int backeNum = l_data.back(); // 返回最后一个值
int frontNum = l_data.front(); // 返回第一个值
int sizeNum = l_data.size(); // 返回列表长度
插入数据
l_data.insert(l_data.begin(), 8); // 在最前面插入新元素,
l_data.insert(l_data.end(), 3, 0); // 在尾部插入3个0,
l_data.insert(l_data.begin(), {9, 10}); // 在尾部插入9,10,
l_data.emplace(l_data.begin(), 81); // 在开始插入81
l_data.emplace_back(12); // 在结尾插入12
l_data.emplace_front(22); // 在开头插入22
删除数据
l_data.erase(l_data.begin()); // 删除 迭代器位置的值
l_data.erase(l_data.begin(), ++l_data.begin()); // 删除迭代器区间的值
l_data.clear(); // 删除所有
其他函数
bool bIs = l_data.empty(); // 判断是否为空
l_data.sort(); // 排序函数从小到大
printData();
l_data.sort(Compare); // 排序通过二元谓词选择排序方式
printData();
l_data.splice(l_data.begin(), l_num); // 把l_num插入l_data中,第一个参数是迭代器的位置
l_data.splice(l_data.begin(), l_num, l_num.begin());
l_data.splice(l_data.begin(), l_num, l_num.begin(), l_num.end());
l_data.unique(); // 删除重复的元素
printData();
bool Compare(int a1, int a2)
{
return a1 > a2;
} // 会产生升序排列,若改为>,则会产生降序;}