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