鏈表相當於 不連續的數組 每個元素都有自己的位置 幷包含有指向下一個元素的位置,這樣相當於形成了鏈式
鏈表不支持遍歷
//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;
}