C++ STL list詳解


一.解釋:

list是一種序列式容器。list容器完成的功能實際上和數據結構中的雙向鏈表是極其相似的,list中的數據元素是通過鏈表指針串連成邏輯意義上的線性表,list不僅是一個雙向鏈表,而其還是一個環狀雙向鏈表。所以它只需要一個指針,便可以完整實現整個鏈表。list有一個重要性質:插入操作(insert)和合並操作(splice)都不會 造成原有的list迭代器失效。甚至 list的元素刪除操作(erase)也只有“指向被刪除元素”的那個迭代器失效,其他迭代器不受任何影響。

二.常用操作:

  1.頭文件

#include<list>

  2.定義

list<string>  test; //定義一個string類型的list

  3.常用函數

push_front(x):把元素x推入(插入)到鏈表頭部
push_back(x):把元素x推入(插入)到雙向隊列的尾部
pop_front():彈出(刪除)雙向隊列的第一個元素
pop_back():彈出(刪除)雙向隊列的最后一個元素
begin():返回向量中第一個元素的迭代器
clear(): 清空list中的所有元素。
empty():利用empty() 判斷list是否為空。
front(): 獲得list容器中的頭部元素
back(): 獲得list容器的最后一個元素。

三.例子

#include <iostream>
#include<string>
#include<list>
using namespace std;
typedef list<string> LISTSTR;
int  main()
{
    LISTSTR test;

    test.push_back("back");                               //back
    test.push_front("middle");                       //middle back
    test.push_front("front");                           //front  middle back

    cout<<test.front()<<endl;                        //front
    cout<<*test.begin()<<endl;                       //front

    cout<<test.back()<<endl;                        //back
    cout<<*(test.rbegin())<<endl;                //back

    test.pop_front();                                   //middle back
    test.pop_back();                                    //middle

    cout<<test.front()<<endl;                    //middle

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM