C 提高程式設計 3 7 list容器

2021-10-21 06:32:36 字數 2940 閱讀 2706

3.7.1 list基本概念

**功能:**將資料進行鏈式儲存

鍊錶(list)是一種物理儲存單元上非連續的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結實現的

鍊錶的組成:鍊錶由一系列結點組成

stl中的鍊錶是乙個雙向迴圈鍊錶

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-r6rhsxgp-1615016990400)(assets/clip_image002-1547608564071.jpg)]

由於鍊錶的儲存方式並不是連續的記憶體空間,因此鍊錶list中的迭代器只支援前移和後移,屬於雙向迭代器

list的優點:

list的缺點:

list有乙個重要的性質,插入操作和刪除操作都不會造成原有list迭代器的失效,這在vector是不成立的。

總結:stl中list和vector是兩個最常被使用的容器,各有優缺點

3.7.2 list建構函式

功能描述:

函式原型:

示例:

#include void printlist(const list& l) 

cout << endl;

}void test01()

int main()

總結:list構造方式同其他幾個stl常用容器,熟練掌握即可

3.7.3 list 賦值和交換

功能描述:

函式原型:

示例:

#include void printlist(const list& l) 

cout << endl;

}//賦值和交換

void test01()

//交換

void test02()

int main()

總結:list賦值和交換操作能夠靈活運用即可

3.7.4 list 大小操作

功能描述:

函式原型:

示例:

#include void printlist(const list& l) 

cout << endl;

}//大小操作

void test01()

else

//重新指定大小

l1.resize(10);

printlist(l1);

l1.resize(2);

printlist(l1);

}int main()

總結:

3.7.5 list 插入和刪除

功能描述:

函式原型:

示例:

#include void printlist(const list& l) 

cout << endl;

}//插入和刪除

void test01()

int main()

總結:

3.7.6 list 資料訪問

功能描述:

函式原型:

示例:

#include //資料訪問

void test01()

int main()

總結:

3.7.7 list 反轉和排序

功能描述:

函式原型:

示例:

void printlist(const list& l) 

cout << endl;

}bool mycompare(int val1 , int val2)

//反轉和排序

void test01()

int main()

總結:

3.7.8 排序案例

案例描述:將person自定義資料型別進行排序,person中屬性有姓名、年齡、身高

排序規則:按照年齡進行公升序,如果年齡相同按照身高進行降序

示例:

#include #include class person 

public:

string m_name; //姓名

int m_age; //年齡

int m_height; //身高

};bool compareperson(person& p1, person& p2)

else }

void test01()

cout << "---------------------------------" << endl;

l.sort(compareperson); //排序

for (list::iterator it = l.begin(); it != l.end(); it++)

}int main()

總結:

scala基礎37 List高階方法

println list 1,2,3,4,5 partition 2 0 find返回option some或none 因為find可能找不到 println list 1,2,3,4,5 find 2 0 println list 1,2,3,4,5 find 0 獲取所有符合條件的元素 prin...

C 提高程式設計(2 1) string容器

3.1.1 string基本概念 本質 string和char 區別 特點 string 類內部封裝了很多成員方法 例如 查詢find,拷貝copy,刪除delete 替換replace,插入insert string管理char 所分配的記憶體,不用擔心複製越界和取值越界等,由類內部進行負責 3....

C 提高程式設計 3 1 string容器

3.1.1 string基本概念 本質 string和char 區別 特點 string 類內部封裝了很多成員方法 例如 查詢find,拷貝copy,刪除delete 替換replace,插入insert string管理char 所分配的記憶體,不用擔心複製越界和取值越界等,由類內部進行負責 3....