链表相当于 不连续的数组 每个元素都有自己的位置 幷包含有指向下一个元素的位置,这样相当于形成了链式
链表不支持遍历
//list容器构造 链表
list <int> L1;
L1.push_back(10);
L1.push_back(20);
L1.push_back(30);
L1.push_back(40);
L1.push_back(50);
printList(L1);
//区间构造
list <int> L2(L1.begin(),L1.end());
printList(L2);
//拷贝构造
list <int> L3(L2);
printList(L3);
list<int >L4(10, 100);
printList(L4);
//list容器赋值操作//
list<int> L1;
L1.push_back(10);
L1.push_back(20);
L1.push_back(30);
L1.push_back(40);
printList(L1);
L1.push_front(50);
printList(L1);
list<int>L2 = L1;
printList(L2);
list<int> L3;
L3.assign(L2.begin(), L2.end());
printList(L2);
//list容器大小操作//
list<int> L1;
L1.push_back(10);
L1.push_back(20);
L1.push_back(30);
L1.push_back(40);
if (L1.empty())
{
cout << "L1为空" << endl;
}
else
{
cout << "L1不为空" << endl;
cout << "L1的大小为: " << L1.size() << endl;
}
L1.resize(2);
printList(L1);
//list容器的插入与删除///
list<int> L1;
L1.push_back(10);
L1.push_back(20);
L1.push_back(30);
L1.push_back(40);
L1.push_front(50); //头插
printList(L1);
L1.pop_back(); //尾删
L1.pop_front(); //头删
printList(L1);
L1.insert(L1.begin(),100);
list<int>::iterator it = L1.begin();
it++;
L1.insert(it,500);
printList(L1);
L1.erase(it);
printList(L1);
L1.remove(500);
printList(L1);
L1.clear();
printList(L1);
//list不能用at [] 访问元素
// 每个元素不是连续的线性空间 所以不能遍历
// 迭加器 it 不能用+2的形式访问 只能++指向下一个元素
L1.front(); //头元素
L1.back(); //尾元素
//list容器反转和排序//
list<int> L1;
L1.push_back(10);
L1.push_back(20);
L1.push_back(30);
L1.push_back(40);
printList(L1);
L1.reverse();
printList(L1);
//所有不支持随机访问迭代器的容器,不可以用标准算法
//不支持随机访问迭代器的容器,内部会提供对应的算法
L1.sort(); //排序
printList(L1);
void printList(list <int>& L)
{
for (list<int>::iterator it = L.begin();it != L.end();it++)
cout << *it << " ";
cout << endl;
}