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....