關於list容器(鍊錶)

2021-08-20 10:10:56 字數 2419 閱讀 4790

鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。

list容器不能像vector一樣以普通指標作為迭代器,因為其節點不能保證在同一塊連續的記憶體空間上。list迭代器必須有能力指向list的節點,並有能力進行正確的遞增、遞減、取值、成員訪問 操作。所謂list正確的遞增,遞減、取值、成員取用 是指,遞增時指向下乙個節點,遞減時指向上乙個節點,取值時取的是節點的資料值,成員取用時取的是節點的成員。

#define _crt_secure_no_warnings

#include

#include

using

namespace

std;

int main()

list

::_nodeptr node = mylist._myhead()->_next;

for (int i = 0; i < mylist._mysize() * 2;i++)

}system("pause");

return exit_success;

}

list

lstt;//list採用採用模板類實現,物件的預設構造形式:

list(beg,end);//建構函式將[beg, end)區間中的元素拷貝給本身。

list(n,elem);//建構函式將n個elem拷貝給本身。

list(const

list &lst);//拷貝建構函式。

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值匹配的元素。

size();//返回容器中元素的個數

empty();//判斷容器是否為空

resize(num);//重新指定容器的長度為num,

//若容器變長,則以預設值填充新位置。

//如果容器變短,則末尾超出容器長度的元素被刪除。

resize(num, elem);//重新指定容器的長度為num,

//若容器變長,則以elem值填充新位置。

//如果容器變短,則末尾超出容器長度的元素被刪除。

assign(beg, end);//將[beg, end)區間中的資料拷貝賦值給本身。

assign(n, elem);//將n個elem拷貝賦值給本身。

list& operator=(const

list &lst);//過載等號操作符

swap(lst);//將lst與本身的元素互換。

front();//返回第乙個元素。

back();//返回最後乙個元素。

list反轉排序

reverse();//反轉鍊錶,比如list包含1,3,5元素,執行此方法後,list就包含5,3,1元素。

sort(); //list排序

void printlist(const

list

&mylist)

cout

<< endl;

}bool mycompre(int val)

mylist.remove_if(mycompre);//大於300的都被刪除

printlist(mylist);//列印

C 容器之List 鍊錶

特性總結 1.list建構函式 list lst 採用模板類實現,物件的預設構造形式 list 建構函式將 beg,end 前閉後開區間中的元素拷貝給本身 list 建構函式將n個elem拷貝被本身 list const list lst 拷貝建構函式 push back elem 在尾部加入乙個元...

C 容器之鍊錶list

include using namespace std list是動態鍊錶,跟vector一樣,是個類模板 list int list int 定義了乙個內部元素是int的鍊錶 list char list char 定義了乙個內部元素是char的鍊錶 listlist student 定義了乙個內...

STL(八)list雙向鍊錶容器

list是雙向鍊錶的乙個泛化容器,實現了reversible container,front insertion sequence and back insertion sequence等概念的介面規範 不同於採用線性表順序儲存結構的vector and deque容器,list雙向鍊錶中任一位置的...