在刷leetcode時發現有時要使用list方法,因此上網搜索並學習它的使用方法
1、介紹
List是一個序列容器,實現的是雙向鏈表,每個元素都有兩個指針,分別指向元素的前驅和后繼。它不需要指定內存大小,因為他在存儲在不連續的內存空間中,並由指針將他們連接在一起。由於鏈表的特點,它的查找要在O(n)的時間才能完成,不能進行內部的隨機訪問,即不支持[ ] 操作符和vector.at() 操作,但它允許序列快速在任意位置進行插入和刪除操作作。包括在兩邊的pop()和push()操作
2、定義以及初始化
#include <bits/stdc++.h> using namespace std; int main() { //建立一個空list list<int> l1; //建立一個含有5個元素的list list<int> l2(5); //建立一個含有5個值為4元素的list list<int> l3(5,4); //使用l2初始化l4 list<int> l4(l2); return 0; }
3、增刪改查操作
1、begin()和end():通過調用list容器的成員函數begin()得到一個指向容器起始位置的iterator,可以調用list容器的 end() 函數來得到list末端下一位置,相當於:int a[n]中的第n+1個位置a[n],實際上是不存在的,不能訪問,經常作為循環結束判斷結束條件使用。
2、front()和back(): 通過front()可以獲得list容器中的頭部元素,通過back()可以獲得list容器的最后一個元素。但是有一點要注意,就是list中元素是空的時候,這時候調用front()和back()會發生什么呢?實際上會發生不能正常讀取數據的情況,但是這並不報錯,那我們編程序時就要注意了,個人覺得在使用之前最好先調用empty()函數判斷list是否為空。
3、push_back() 和push_front():使用list的成員函數push_back和push_front插入一個元素到list中。其中push_back()從list的末端插入,而 push_front()實現的從list的頭部插入。
4、pop_back和pop_front():通過刪除最后一個元素,通過pop_front()刪除第一個元素;序列必須不為空,如果當list為空的時候調用pop_back()和pop_front()會使程序崩掉。
4、參考資料
1、《c++(list容器學習)》https://www.cnblogs.com/loleina/p/5179677.html
2、《C++中list的用法詳解》https://blog.csdn.net/yas12345678/article/details/52601578/