欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ STL之slist單向鏈表容器使用方式

 更新時間:2024年04月23日 10:15:59   作者:csdn_HZW  
這篇文章主要介紹了C++ STL之slist單向鏈表容器使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

slist為單向鏈表的泛化容器,與list雙向鏈表容器一樣,實現(xiàn)了線性表數(shù)據(jù)的鏈表存儲,數(shù)據(jù)元素不必在物理內(nèi)存中連續(xù)分布。

slist鏈表的節(jié)點,只有后繼的指針,不含前驅(qū)的指針。因此,在節(jié)省前驅(qū)指針的存儲空間的同時,也就不再支持迭代器的反向移動。

1.slist技術(shù)原理

slist內(nèi)部的鏈表由頭指針、頭節(jié)點和元素節(jié)點組成,每個節(jié)點含有指向后繼節(jié)點的指針,最后一個節(jié)點的指針為null,可見slist沒有形成一個環(huán)形回路。

單向鏈表結(jié)構(gòu)

頭節(jié)點一般不存儲數(shù)據(jù),為了使各個元素節(jié)點都有前驅(qū)節(jié)點的指針指向它以便能夠不加區(qū)別的對第一個元素節(jié)點和其他元素節(jié)點進行統(tǒng)一處理,所以構(gòu)造頭節(jié)點。

2.slist應(yīng)用基礎(chǔ)

list對象的創(chuàng)建和vector一樣,不多解釋。元素的刪除、歸并、排序與list相同。

2.1初始化賦值和遍歷

通常使用push_front函數(shù)進行初始化,由于slist的頭節(jié)點僅有一個指針域保存首元素地址,而沒有存放最后一個元素的地址,因此slist沒有提供類似的push_back函數(shù)能夠在容器尾部添加元素。

push_front函數(shù)在鏈表首元素前面,插入一個新元素,使之成為首元素。

遍歷slist和list一樣,只能使用迭代器進行遍歷,而不能使用數(shù)組下標的形式。

#include <QList>                 //在qt中QList就是單向鏈表,用法和slist相同
#include <QCoreApplication>
#include<QString>
using namespace std;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QList<int> s;
    s.push_front(11);           //在首元素插入11
    s.push_front(23);           //在11前面插入23,即現(xiàn)在23為首元素
    s.push_front(39);          // 在首元素23之前插入39,即39,23,11
    QList<int>::iterator i,iend;
    iend=s.end();
    for(i=s.begin();i!=iend;i++)
    {
        cout << *i << " ";
    }
    cout << endl;
    return a.exec();
}

運行結(jié)果:

2.2元素的插入

對于任意位置上的slist鏈表元素的插入,可使用insert_after和insert函數(shù),insert_after函數(shù)直接在指定的pos位置后插入新元素。

insert則從單向鏈表的頭節(jié)點開始,找到pos的前驅(qū)位置,然后調(diào)用insert_after函數(shù)進行插入,因此執(zhí)行效率比較低。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于QT設(shè)計一個春聯(lián)自動生成器

    基于QT設(shè)計一個春聯(lián)自動生成器

    春節(jié)是中國最隆重的傳統(tǒng)節(jié)日,一到過年家家戶戶肯定是要貼春聯(lián);在春節(jié)前夕,會用大紅紙張,加上濃墨書寫祝福詞語。本文將利用Qt框架設(shè)計一個春聯(lián)自動生成器,需要的可以參考一下
    2022-01-01
  • C++實現(xiàn)LeetCode(36.驗證數(shù)獨)

    C++實現(xiàn)LeetCode(36.驗證數(shù)獨)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(36.驗證數(shù)獨),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中sizeof函數(shù)的基本使用總結(jié)

    C語言中sizeof函數(shù)的基本使用總結(jié)

    這篇文章主要給大家介紹了關(guān)于C語言中sizeof函數(shù)的基本使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • C++之友元:友元函數(shù)和友元類詳解

    C++之友元:友元函數(shù)和友元類詳解

    友元是一種允許非類成員函數(shù)訪問類的非公有成員的一種機制??梢园岩粋€函數(shù)指定為類的友元,也可以把整個類指定為另一個類的友元
    2013-09-09
  • C語言實現(xiàn)密碼強度檢測

    C語言實現(xiàn)密碼強度檢測

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)密碼強度檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言分別實現(xiàn)棧和隊列詳解流程

    C語言分別實現(xiàn)棧和隊列詳解流程

    棧和隊列,嚴格意義上來說,也屬于線性表,因為它們也都用于存儲邏輯關(guān)系為 "一對一" 的數(shù)據(jù),但由于它們比較特殊,因此將其單獨作為一章,做重點講解
    2022-04-04
  • Qt 中 isHidden 和 isVisible 的區(qū)別與使用小結(jié)

    Qt 中 isHidden 和 isVisible 的區(qū)別與使用小結(jié)

    Qt 中的 isHidden() 和 isVisible() 方法都用于查詢組件顯示或隱藏狀態(tài),然而,它們有很大的區(qū)別,了解它們對于正確操作組件致關(guān)重要,下面給大家介紹Qt 中 isHidden 和 isVisible 的區(qū)別與使用,感興趣的朋友一起看看吧
    2025-03-03
  • C語言文件操作與相關(guān)函數(shù)介紹

    C語言文件操作與相關(guān)函數(shù)介紹

    文件(file)一般指存儲在外部介質(zhì)上數(shù)據(jù)的集合,比如我們經(jīng)常使用的.txt, .bmp, jpg. .exe,.rmvb等等,下面這篇文章主要給大家介紹了關(guān)于C語言文件操作的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • C語言實現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法

    C語言實現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法

    這篇文章主要介紹了C語言實現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法,涉及C語言基于libmysql.lib實現(xiàn)訪問MySQL數(shù)據(jù)庫的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 使用C語言操作樹莓派GPIO的詳細步驟

    使用C語言操作樹莓派GPIO的詳細步驟

    今天抽空給大家普及使用C語言操作樹莓派GPIO的詳細步驟,本文大概分五步給大家介紹樹莓派GPIO安裝步驟,首先需要安裝GPIO庫然后進行一步步設(shè)置,具體操作方法跟隨小編一起學(xué)習(xí)吧
    2021-06-06

最新評論