程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++ STL學習——list

C++ STL學習——list

編輯:關於C++

如果由我們自己來實現一個鏈表,會寫上不少代碼,包括要實現創建、刪除、插入等等操作。但是如果我們用了STL,那麼該模板庫就為我們提供了一個雙向鏈表list,可以讓我們非常方便的實現鏈表操作。要使用list,首先要引入頭文件 #include .相關的示例代碼上傳至 https://github.com/chenyufeng1991/STL_list 。

(1)創建list

 

    list list1; // 創建一個空的list
    list list2(list1); // 復制另一個同類型元素的list
    list list3(10); // 創建n個元素的list,每個元素值由默認構造函數確定
    list list4(10,0); // 創建n個元素的list,每個元素的值為elem
可以有多種方式創建一個list。

 

(2)push_back(),尾部插入元素;push_front():頭部插入元素

 

 // 尾部增加一個元素
    list1.push_back(2);
    list1.push_back(4);
    list1.push_back(6);
    list1.push_back(8);

    // 頭部增加一個元素
    list1.push_front(3);
    list1.push_front(5);
    list1.push_front(7);


 

(3)pop_back:尾部刪除元素,pop_front:頭部刪除元素

 

  // 刪除尾部元素
    list1.pop_back();
    PrintList(list1);

    // 刪除頭部元素
    list1.pop_front();
    PrintList(list1);


 

(4)remove():刪除等於某個值的所有元素

 

// 刪除容器中所有元素等於x的元素
    list1.remove(2);
    PrintList(list1);


 

(5)insert():在指定位置插入元素

 

    // 在指定位置插入元素x,需要使用迭代器找到該元素
    list::iterator listInte = list1.begin();
    for (int i = 0; i < 2 && listInte != list1.end(); i++)
    {
        listInte++;
    }
    list1.insert(listInte, 99);
    PrintList(list1);
這裡同vector的使用,也需要使用迭代器。

 

 

(6)erase():刪除指定位置的元素

 

    // 刪除指定位置的元素
    list::iterator listErase = list1.begin();
    for (int i = 0; i < 2 && listErase != list1.end(); i++)
    {
        listErase++;
    }
    list1.erase(listErase);
    PrintList(list1);
這裡也需要使用迭代器,可以理解為要找到刪除的元素,首先要進行遍歷。

 

 

(7)back():訪問鏈表尾部元素;front():訪問鏈表頭部元素;


    cout << "尾部元素為:" << list1.back() << endl;
    cout << "頭部元素為:" << list1.front() << endl;


 

(8)sort():升序排序;reverse():降序排序

 

 // 升序排序
    list1.sort();
    PrintList(list1);

    // 降序排序
    list1.reverse();
    PrintList(list1);


 

(9)swap():交換兩個list

 

(10)clear():清空整個list

 

 // 清空整個鏈表
    list1.clear();
    PrintList(list1);
list中包含0個元素。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved