STL中list各個介面的使用

2021-07-31 12:42:58 字數 2731 閱讀 1131

list是stl中的乙個重要的容器,它是乙個雙向的迴圈的帶頭結點的鍊錶,可以高效的進行插入刪除元素。

這是c++網上的一張list的構造和方法的圖↑

1.construct list構造成員函式

void constructtest()                         //construct list 建構函式;

2.析構函式

list destructor;

destroys the container object.   ~list用來清理銷毀達到生命週期該釋放的鍊錶。

3.list& operator= (const list& x);等號操作符的過載。

4.list中迭代器生成器

void iteratortest(list&l)

5.capacity 關於容量的一些方法;

void capacitytest(list&l)

6.modifiers:關於修改鍊錶內容的方法:

void modifierstest()

7.operations:關於list的一些操作

void operationstest()

所有小於5的被刪了

l1.insert(++l1.begin(), 3, 3);

cout << "l1: "; printlist(l1);

l1.remove_if(lessthanfive);

cout << "l1: "; printlist(l1);

cout << "unique" << endl;

//void unique();//刪除重複的元素只保留乙份(連續重複的元素刪除,與sort一起使用效果更佳)

l1.insert(++l1.begin(), 3, 3);

cout << "l1: "; printlist(l1);

l1.unique();

cout << "l1: "; printlist(l1);

cout << "sort test" << endl;

l1.push_back(30);

l1.push_back(1);

l1.push_back(2);

l1.sort(); //空引數預設降序

l1.sort(bigthan); // 過載了公升降序template void sort ( compare comp )涉及到仿函式來決定公升降序。

//bool bigthan(const int&first, const int &second)

cout << "l1 :"; printlist(l1);

cout << "splice test" << endl;

l1.splice(++l1.begin(), l2); //void splice(iterator position, list

& x);將l2中的元素剪下到l1中pos位置開始的迭代器後面

cout << "l1 :"; printlist(l1);

cout << "l2 :"; printlist(l2);

l1.assign(3, 5);

l2.assign(5, 4);

l2.push_front(2);

l2.push_front(1);

cout << endl;

cout << "l1 :"; printlist(l1);

cout << "l2 :"; printlist(l2);

l1.splice(++l1.begin(), l2,++l2.begin()); //void splice(iterator position, list

& x, iterator i);將l2中從所給迭代器i位置剪下到l1中

cout << "l1 :"; printlist(l1);

cout << "l2 :"; printlist(l2);

//void splice(iterator position, list

& x, iterator first, iterator last); l1.splice(++l1.begin(), l2, ++l2.begin(), l2.end()); //將l2中從迭代器first到last區間內的元素剪下到l1中; cout << "l1 :"; printlist(l1); cout << "l2 :"; printlist(l2); cout << "merge test" << endl; l1.sort(); l2.sort(); l1.merge(l2); //void merge(list

& x);合併兩個list並預設 /*注意:1)merge()是將兩個有序的鍊錶合併成另乙個有序的鍊錶,如果有乙個鍊錶不是有序的那麼在執行**時會報錯:說鍊錶不是有序的。 2)還有,兩個鍊錶中的內容排序順序與合併時採用的排序順序必須一致,如果不一致,也會報錯,說鍊錶不是有序的。 如想要降序合併兩個鍊錶,那麼合併前的兩個鍊錶也必須是按降序排列的。 3)另外,當執行完merge()後,右邊的鍊錶將變為空。*/ cout << "l1 :"; printlist(l1); cout << "l2 :"; printlist(l2); }

以上就是大部分用得到的list容器的介面的用法o(∩_∩)o~

Java中list介面的使用

list 特性 元素是有序的,元素可以重複 因為元素是有索引的 arraylist 底層使用的是陣列結構,特點 查詢很快,增刪很慢 執行緒不同步 linkedlist 底層使用的是鏈條結構,特點 查詢很慢,增刪很快 需求 使用arraylist儲存物件person類,並去除相同元素 class pe...

STL中list的使用

stl中list的使用 stl中的list就是一雙向鍊錶,可高效地進行插入刪除元素。現總結一下它的操作。文中所用到兩個list物件c1,c2分別有元素c1 10,20,30 c2 40,50,60 還有乙個list iterator citer用來指向c1或c2元素。list物件的宣告構造 a.li...

STL中list的使用

stl中的list就是一雙向鍊錶,可高效地進行插入刪除元素。現總結一下它的操作。文中所用到兩個list物件c1,c2分別有元素c1 10,20,30 c2 40,50,60 還有乙個list iterator citer用來指向c1或c2元素。list物件的宣告構造 a.listc0 空鍊錶 b.l...