免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

C++STL常用數(shù)據(jù)結(jié)構(gòu)-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè),為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),品牌網(wǎng)站制作,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。

導(dǎo)入

一、棧stack / 隊(duì)列queue / 優(yōu)先級隊(duì)列priority_queue

1、數(shù)據(jù)結(jié)構(gòu)簡介

(1)棧

(2)隊(duì)列

2、定義

3、函數(shù)

二、映射map

結(jié)語

導(dǎo)入

想必大家在寫程序的過程中都遇到過一些麻煩吧?比如深搜和廣搜要用到棧和隊(duì)列,于是......

class Stack{
private:
    int nElems, top;
    int * p;
public:
    Stack(int n){...}
    Stack(){...}
    void push(int a){...}
    void pop(){...}
    void printStack(){...}
    void size(){...}
};

class Queue{
    ......
};

但是,實(shí)際上,C++的STL標(biāo)準(zhǔn)庫就為我們提供了很多全類型通用的諸如棧、隊(duì)列、集合等常用數(shù)據(jù)結(jié)構(gòu)。接下來,小編將一一介紹這些。

一、棧stack / 隊(duì)列queue / 優(yōu)先級隊(duì)列priority_queue 1、數(shù)據(jù)結(jié)構(gòu)簡介

眾所周知,棧、隊(duì)列、優(yōu)先級隊(duì)列都是比較常用的數(shù)據(jù)結(jié)構(gòu)。接下來,小編將先介紹一下這些結(jié)構(gòu)的用法(老手可以跳過了)

(1)棧

棧(stack)是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。什么叫先進(jìn)后出呢?看圖。

圖1

如圖1,這是一個(gè)容量為5的空棧,棧頂在最下邊。在圖2中,我們往棧頂插入了一個(gè)元素14,棧頂上移一個(gè)單位;

圖3圖4

然后,我們又依次插入了45和11兩個(gè)元素(圖3)。

最后,從棧頂依次彈出三個(gè)元素,得到出棧序列114514( bushi?

(2)隊(duì)列

先進(jìn)先出的序列,沒什么好說的

2、定義

通常,STL標(biāo)準(zhǔn)庫的數(shù)據(jù)結(jié)構(gòu)定義都是這樣的:

數(shù)據(jù)結(jié)構(gòu)類型<存儲(chǔ)類型>結(jié)構(gòu)名

例如,要定義一個(gè)名為s1,存儲(chǔ)整型的棧,則代碼為:

#includestacks1;

注意:在使用STL庫函數(shù)時(shí),一定要先插入頭文件,如棧的頭文件為stack,隊(duì)列為queue等,當(dāng)然你也可以直接用萬能頭文件bits/stdc++.h,這樣就當(dāng)我沒說好了qwq

3、函數(shù)

用途:往結(jié)構(gòu)內(nèi)插入數(shù)據(jù),例:

stacks1;
s1.push(233);

當(dāng)然,這里的stack也可以換成queue或priority_queue等,后文不再贅述

其余常用函數(shù)用法如下:

stacks1;
queueq1;
s1.pop() 或 q1.pop()           //從一定位置(棧頂、隊(duì)頭)取出元素
s1.top() 或 q1.front()         //獲取棧頂或隊(duì)頭元素
s1.size()或 q1.size()          //獲取結(jié)構(gòu)內(nèi)元素?cái)?shù)量
二、映射map

寫程序的過程中,我們經(jīng)常需要保存一個(gè)string類型的用戶名和用戶的數(shù)據(jù),于是我們的代碼通常會(huì)這么寫:

#define MaxN 233
struct Person{
    string name;
    int age;
}m[MaxN];
int find(string s){
    for(int i = 0; i< MaxN; i++)
        if(m[i].name == s) return i;
    return -1;
}

為了直到名字s對應(yīng)的下標(biāo)或數(shù)據(jù),我們通常會(huì)寫一個(gè)find函數(shù),這就讓我們的代碼平添了五行,非常不舒服 (bushi) 那有沒有一種可能,我們的代碼可以寫成這樣呢?

m["233"] = 0;
cout<< m["233"];

這里,我們使用字符串作為下標(biāo),用中括號(hào)訪問一個(gè)整形數(shù)據(jù),還做了修改和輸出。

若是在平常,這種代碼肯定是不存在的(除非你有這個(gè)閑工夫心思去重載運(yùn)算符)

但,是!今天,時(shí)代變了!我們可以寫出下面幾行代碼:

#includemapm;
m["233"] = 0;

這里,我們導(dǎo)入了頭文件map,然后我們用一種奇怪的方式訪問到了以字符串作為下標(biāo)的數(shù)據(jù)。

這就是用到了STL的一種神奇數(shù)據(jù)結(jié)構(gòu)——map映射。

具體定義時(shí),我們可以這么寫:

map<下標(biāo)類型, 數(shù)據(jù)類型>結(jié)構(gòu)名

與前面幾個(gè)數(shù)據(jù)結(jié)構(gòu)的定義不同,這次的尖括號(hào)里有兩個(gè)參數(shù),分別代表訪問的下標(biāo)類型和需要存儲(chǔ)的數(shù)據(jù)類型(別問我為什么參數(shù)名那么通俗,問就是我取的名)

結(jié)語

制作不易,點(diǎn)個(gè)贊唄~

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站欄目:C++STL常用數(shù)據(jù)結(jié)構(gòu)-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://newbst.com/article26/iojjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名App開發(fā)定制網(wǎng)站企業(yè)建站搜索引擎優(yōu)化網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司