list容器的功能:將資料進行鏈式儲存。
stl中的鍊錶是乙個雙向迴圈鍊錶。
list的優點:
採用動態儲存分配,不會造成記憶體浪費和溢位;
執行插入和刪除方便,修改指標的指向即可,不需要移動大量元素。
list的缺點:
空間(指標域)和時間(遍歷)耗費較大。
list插入和刪除元素不會造成原有的迭代器的失效。
list建構函式:
函式原型:
//list採用採用模板類實現,物件的預設構造形式:list賦值和交換:listlst;
//建構函式將[beg, end)區間中的元素拷貝給本身。
list(beg,end);
//建構函式將n個elem拷貝給本身。
list(n,elem);
//拷貝建構函式。
list(const list &lst);
函式原型:
//將[beg, end)區間中的資料拷貝賦值給本身。list大小操作:assign(beg, end);
//將n個elem拷貝賦值給本身。
assign(n, elem);
//過載等號操作符
list& operator=(const list &lst);
//將lst與本身的元素互換。
swap(lst);
函式原型:
//返回容器中元素的個數list插入和刪除:size();
//判斷容器是否為空
empty();
//重新指定容器的長度為num,若容器變長,則以預設值填充新位置。
// 如果容器變短,則末尾超出容器長度的元素被刪除。
resize(num);
//重新指定容器的長度為num,若容器變長,則以elem值填充新位置。
//如果容器變短,則末尾超出容器長度的元素被刪除。
resize(num, elem);
函式原型:
//在容器尾部加入乙個元素例子:push_back(elem);
//刪除容器中最後乙個元素
pop_back();
//在容器開頭插入乙個元素
push_front(elem);
//從容器開頭移除第乙個元素
pop_front();
//在pos位置插elem元素的拷貝,返回新資料的位置。
insert(pos,elem);
//在pos位置插入n個elem資料,無返回值。
insert(pos,n,elem);
//在pos位置插入[beg,end)區間的資料,無返回值。
insert(pos,beg,end);
//移除容器的所有資料
clear();
//刪除[beg,end)區間的資料,返回下乙個資料的位置。
erase(beg,end);
//刪除pos位置的資料,返回下乙個資料的位置。
erase(pos);
//刪除容器中所有與elem值匹配的元素。
remove(elem);
#include #include using namespace std;
void print_list(const list& list1)
cout// 尾插
list1.push_back(10);
list1.push_back(30);
// 頭插
list1.push_front(15);
list1.push_front(25);
print_list(list1);
// 尾刪
list1.pop_back();
print_list(list1);
// 頭刪
list1.pop_front();
print_list(list1);
// 插入
list::iterator it=list1.begin();
list1.insert(++it,16);
print_list(list1);
// 刪除
it=list1.end();
list1.erase(--it);
print_list(list1);
// 移除
list1.push_front(20);
list1.push_front(20);
list1.remove(20);
print_list(list1);
// 清空
list1.clear();
print_list(list1);
}int main()
list資料訪問:
函式原型:
//返回第乙個元素。list反轉和排序:front();
//返回最後乙個元素。
back();
函式原型:
//反轉鍊錶例子;reverse();
//鍊錶排序
sort();
#include #include using namespace std;
void print_list(const list& list1)
cout}void test01()
int main()
C 學習筆記 STL常用容器 string
string是c 風格的字串,其本質上是乙個類,內部封裝了很多成員函式。string和char 的區別 1.char 是乙個指標 2.string是乙個類,內部封裝 char 是乙個char 型的容器。string建構函式 函式原型 建立乙個空字串 string 使用字串s初始化 string co...
C 學習筆記 STL常用容器 set和map
set 所有元素在插入時自動排序,底層結構用二叉樹實現。set和multiset的區別 set不允許容器中有重複的元素,multiset允許容器中有重複的元素。set構造和賦值 構造 預設建構函式 setst 拷貝建構函式 set const set st 賦值 過載等號操作符 set operat...
C 學習 STL容器
vector 向量 線性容器 用標準模板,記得加上相應的標頭檔案 include include using namespace std int main 設定向量容量 初始化 v1 0 8 v1 1 8 v1 2 8 宣告迭代器 標準他屬於那個模板 vector iterator v1 iter ...