1、功能:將資料進行鏈式儲存。
2、鍊錶(list)是一種物理儲存單元上非連續的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結實現的。
3、鍊錶的組成:鍊錶由一系列節點組成。
節點的組成:乙個是儲存資料元素的資料域,另乙個是儲存下乙個節點的指標域。
4、stl中的鍊錶是乙個雙向迴圈鍊錶。
5、由於鍊錶的儲存方式並不是連續的記憶體空間,因此鍊錶list中的迭代器只支援前移和後移,屬於雙向迭代器。
6、list的優點:
7、list與vector對比:stl中list與vector是兩個最常被使用的容器,各有優缺點。
8、list構函式
listlist; //list採用模板類實現物件的預設構造形式
list(beg, end); //建構函式將[beg, end]區間中的元素拷貝給本身
list(n, elem); //建構函式將n個elem拷貝給本身
list(const list &lst); //拷貝建構函式
9、list賦值與交換
assign(beg, end); //將[beg, end]區間中的資料拷貝賦值給本身
assign(n, elem); //將n個elem拷貝賦值給本身
list& operator=(const list &lst); //過載等號操作符
swap(lst); //將list與本身的元素互換
10、list大小操作
size(); //返回容器中元素的個數
empty(); //判斷容器是否為空
resize(num); //重新指定容器的長度為num,若容器變長,則以預設值填充新位置;
//若果容器變短,則末尾超出容器長度的元素被刪除
resize(num, elem); //重新指定容器的長度為num,若容器變長,則以elem填充新位置;
//若果容器變短,則末尾超出容器長度的元素被刪除
判斷是否為空——empty
返回元素個數——size
重新指定個數——resize
11、list插入和刪除
push_back(elem); //在容器尾部加入乙個元素
pop_back(); //刪除容器中最後乙個元素
push_front(elem); //在容器開頭插入乙個元素
pop_front(); //從容器開頭移除第乙個元素
insert(pos, elem); //在pos位置插elem元素的拷貝,返回新資料的位置
insert(pos, n, elem); //在pos位置插入n個elem資料,無返回值
insert(pos, beg, end); //在pos位置插入[beg, end]區間的資料,無返回值
clear(); //移除容器的所有資料
erase(beg, end); //刪除[beg, end]區間的資料,返回下乙個資料的位置
erase(pos); //刪除pos位置的資料,返回下乙個資料的位置
remove(elem); //刪除容器中所有與elem值匹配的元素
尾插——push_back
尾刪——pop_back
頭插——push_front
頭刪——pop_front
插入——insert
刪除——erase
移除——remove
清空——clear
12、list資料訪問
front(); //返回第乙個元素
back(); //返回最後乙個元素
list容器中不可以通過或者at方式訪問資料
返回第乙個元素——front
返回最後乙個元素——back
13、list反轉和排序
reverse(); //反轉鍊錶
sort(); //鍊錶排序
C 基礎隨筆006 vector容器
1 vector容器 2 vector與普通陣列的區別 3 vector賦值操作 vector operator const vector vec 過載等號操作 assign beg,end 將 beg,end 區間中的資料拷貝賦值給本身 assign n,elem 將n個elem拷貝賦值給本身 4...
C 學習隨筆 (容器)
定義 是乙個能夠儲存任意型別的動態陣列,可以增加和壓縮資料。vector的用法 1 標頭檔案應包括 include 2 vector的建立 vector vec 建立乙個int型別名為vec的vector 3 在容器尾部新增元素 vec.push back a 4 使用下標訪問元素 cout int...
C 容器list排列
list容器網上資料講的相對其他容器vector等要少很多,這裡對list容器的排序簡單說一下。框架 include include using namespace std int main return 0 使用push back 新增元素。假定要輸入的資料為 3 1 5 4 2sort 公升序排...