C 基礎隨筆009 list容器

2021-10-22 18:30:59 字數 2447 閱讀 5909

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 公升序排...