国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++——模板(初階) + string

這篇具有很好參考價(jià)值的文章主要介紹了C++——模板(初階) + string。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

作者:幾冬雪來

時(shí)間:2023年5月19日

內(nèi)容:C++模板 + string講解

目錄

前言:

1.模板:?

1.函數(shù)模板的隱/顯示實(shí)例化:?

2.類模板:

2.STL:?

1.? 什么是STL:?

2.STL六大組件:?

3.string類:?

結(jié)尾:?


前言:

在上一篇博客我們結(jié)束了動(dòng)態(tài)管理的講解,并且在最后的時(shí)候我們引出了下一個(gè)學(xué)習(xí)的知識(shí)板塊——模板。那么今天我們就大致的堆模板(初階)進(jìn)行講解吧。

C++——模板(初階) + string

1.模板:?

首先在進(jìn)一步介紹模板的時(shí)候,這里我們要知道一個(gè)知識(shí)。

C++——模板(初階) + string

在這里我們創(chuàng)建模板的時(shí)候我們可以用class去代替typname,但是不能用struct去替代typename。?

1.函數(shù)模板的隱/顯示實(shí)例化:?

C++——模板(初階) + string

在這里我們首先依靠模板來書寫一個(gè)兩個(gè)值相加的函數(shù)。?

在這里我們的a1和a2都是整形,d1和d2都是浮點(diǎn)型,我們都可以對(duì)其進(jìn)行相加。

但是在這里就出現(xiàn)了一個(gè)問題。?

C++——模板(初階) + string

如果在這里,參數(shù)是一個(gè)浮點(diǎn)型和一個(gè)整形的話,我們的單個(gè)T無法確定類型。

因此代碼會(huì)報(bào)錯(cuò)。?

這里的一種方法就是強(qiáng)制類型轉(zhuǎn)換

C++——模板(初階) + string

上面我們都是實(shí)參傳遞的類型,推演T的類型。

另外一種方法就是我們的顯示實(shí)例化。

C++——模板(初階) + string

在這里就是我們的顯示實(shí)例化。?

顯示實(shí)例化,它是用指定的類型實(shí)例化。

在上面的顯示實(shí)例化的代碼中,我們的d2發(fā)生了隱式類型裝換。

C++——模板(初階) + string

都是我們的顯示實(shí)例化并不是用于上面的兩個(gè)數(shù)相加求值的代碼中。

而是更多用于我們下面這種無法判斷T類型的代碼中。?

2.類模板:

在講解完了我們的函數(shù)模板之后,接下來我們就來開始講解類模板了。

簡(jiǎn)單的用我們的用棧來舉例。

C++——模板(初階) + string

如果我們?cè)谶@里想要一個(gè)棧存int,一個(gè)存double。

那么相對(duì)于的我們就要?jiǎng)?chuàng)建出這兩個(gè)類型相對(duì)于的類,因?yàn)橹粚懸粋€(gè)的話我們的類型是寫死的。

可是這樣子有過于麻煩了,每多出一個(gè)類型我們就要多創(chuàng)建一個(gè)類型的棧進(jìn)行存儲(chǔ)

并且如果某個(gè)類發(fā)生問題的話,我們每個(gè)都要進(jìn)行修改。

因此在這里我們就用到了類的模板。

?C++——模板(初階) + string

通過以上這種代碼,我們就可以成功的創(chuàng)建出不同類型的函數(shù)。

并且也不用對(duì)其失敗進(jìn)行判斷。

又因?yàn)?span style="color:#fe2c24;">類模板無法推演實(shí)例化。

C++——模板(初階) + string

因此在這里我們就要用到顯示實(shí)例化。?

同樣的我們的類模板的聲明和定義可以分開進(jìn)行書寫,但是這里并不推薦,因?yàn)橄裎覀兤匠D菢臃珠_書寫的話會(huì)出現(xiàn)問題

因此到后面我們學(xué)習(xí)到更深的地方的時(shí)候我們?cè)賮韺W(xué)習(xí)。?

在這里每寫一個(gè)不同函數(shù),要建立一個(gè)類模板。?

2.STL:?

那么在大概的講解了初階模板之后,接下來我們就要開始講STL了。

1.? 什么是STL:?

C++——模板(初階) + string

2.STL六大組件:?

C++——模板(初階) + string

3.string類:?

在我們的C語言中我們就存在了string。

同樣的在C++中也存在著string,只不過二者的用法稍有不同。

C++——模板(初階) + string

在這里我們將C++中的string的用法叫做。

string類。

那么接下來我們就簡(jiǎn)單的介紹一下我們的string類要怎么樣書寫吧。?

C++——模板(初階) + string

這里就是我們string的簡(jiǎn)單用法。?

其次,我們的string類也支持多個(gè)參數(shù)的輸入。?

C++——模板(初階) + string

?

同時(shí)我們也可以用我們的string類來copy我們字符串的一部分長度。?

C++——模板(初階) + string?

就類似這個(gè)樣子我們可以借助string類來copy我們一部分字符串的長度

s3是我們的被copy的函數(shù),6是下標(biāo)為6的位置,5是copy的數(shù)量。?

在這里我們不能不寫5,如果不寫5的話,這里我們的代碼也是會(huì)崩潰的。

這個(gè)地方也可以直接比較字符串的大小。

C++——模板(初階) + string

像這里我們就比較了兩個(gè)字符串的大小。

不過因?yàn)閮?yōu)先級(jí)的緣故,我們需要對(duì)兩個(gè)比較的值加上括號(hào),不然會(huì)報(bào)錯(cuò)。?

C++——模板(初階) + string?

同樣的我們的string類也可以這樣書寫

不過這樣寫的效率不好,不建議這樣使用。?

C++——模板(初階) + string?

同樣的之前我們又說過,string類可以實(shí)現(xiàn)增刪查改。

這里就是我們實(shí)現(xiàn)增刪查改的代碼

不過相比起這樣書寫增刪查改,我們還要更加便利的方法。?

C++——模板(初階) + string?

這樣子書寫依舊可以完成我們的增。

它的本質(zhì)還是尾插,只不過它在string類中重載了operator+=,然后我們?nèi)ミM(jìn)行調(diào)用。

接下來還有一個(gè)問題。

?在這里我們要求把一個(gè)變量轉(zhuǎn)為string對(duì)象的話要怎么書寫

C++——模板(初階) + string

在這里我們就可以這樣進(jìn)行實(shí)現(xiàn)。?

不過這個(gè)代碼還有一些要改進(jìn)的地方,下一篇博客我們?cè)賮砑?xì)說。

結(jié)尾:?

在這里我們的模板初階就這樣的科普完畢了,接下來我們就要講解C++中的核心內(nèi)容STL了。大家一定要在學(xué)好新知識(shí)的過程中鞏固舊知識(shí),這樣才能有所提升。最后希望這篇博客能帶來幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-451605.html

到了這里,關(guān)于C++——模板(初階) + string的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++初階—string類(1)

    C++初階—string類(1)

    ? 目錄 1. 為什么要學(xué)習(xí)string類 1.1 C語言中的字符串 1.2 兩個(gè)面試題 2. 標(biāo)準(zhǔn)庫中的string類 3. string類對(duì)象的常見構(gòu)造 ?string常見構(gòu)造類的使用代碼演示 4. string類對(duì)象的容量操作 string容量相關(guān)方法使用代碼演示 5. string類對(duì)象的訪問及遍歷操作 string中元素訪問及遍歷代碼演示 6.

    2023年04月08日
    瀏覽(20)
  • 【C++初階】第六站 : 模板初階

    【C++初階】第六站 : 模板初階

    前言: 本章知識(shí)點(diǎn):泛型編程、函數(shù)模板、類模板 專欄: C++初階 目錄 泛型編程 函數(shù)模板 1.函數(shù)模板概念 2.函數(shù)模板格式 3.函數(shù)模板的原理 4.函數(shù)模板的實(shí)例化 5.模板參數(shù)的匹配原則 類模板 類模板的定義格式 類模板的實(shí)例化 如何實(shí)現(xiàn)一個(gè)通用的交換函數(shù)呢? 代碼如下:

    2024年03月17日
    瀏覽(29)
  • 【C++初階】9. string類的模擬實(shí)現(xiàn)

    【C++初階】9. string類的模擬實(shí)現(xiàn)

    string類的完整實(shí)現(xiàn)放這里啦!快來看看吧 string類的作用就是將字符串類型實(shí)現(xiàn)更多功能,運(yùn)算符重載,增刪改查等等操作,所以其成員就包含char*的字符串 在之前的學(xué)習(xí)過程中,我們了解到類中存在的六個(gè)默認(rèn)函數(shù),其中就包含默認(rèn)構(gòu)造函數(shù),那么對(duì)于string類是否需要用戶自

    2024年02月09日
    瀏覽(20)
  • 【C++初階】學(xué)習(xí)string類的模擬實(shí)現(xiàn)

    【C++初階】學(xué)習(xí)string類的模擬實(shí)現(xiàn)

    前面已經(jīng)學(xué)習(xí)了string類的用法,這篇文章將更深入的學(xué)習(xí)string類,了解string類的底層是怎么實(shí)現(xiàn)的。當(dāng)然,這里只是模擬一些常用的,不常用的可以看文檔學(xué)習(xí)。 我們一共創(chuàng)建兩個(gè)文件,一個(gè)是test.cpp文件,用于測(cè)試;另一個(gè)是string.h文件,用于聲明和定義要模擬的string類。

    2024年02月03日
    瀏覽(19)
  • 【C++初階】string 類的認(rèn)識(shí)與學(xué)習(xí)

    【C++初階】string 類的認(rèn)識(shí)與學(xué)習(xí)

    ? 在學(xué)習(xí)string類之前,先在這里推薦2個(gè)好用的網(wǎng)站,可以用來查閱C++的相關(guān)知識(shí) https://cplusplus.com https://en.cppreference.com/w/ 上面的是非官方的,下面的官方的,但是個(gè)人感覺還是上面的好用。 簡(jiǎn)單來說, string 是C++中用來管理字符串的類。 他有很多接口,大致分為: 1.string類

    2024年02月09日
    瀏覽(25)
  • 【C++初階】模擬實(shí)現(xiàn)string的常見操作

    【C++初階】模擬實(shí)現(xiàn)string的常見操作

    ??個(gè)人主頁:@Weraphael ???作者簡(jiǎn)介:目前學(xué)習(xí)C++和算法 ??專欄:C++航路 ?? 希望大家多多支持,咱一起進(jìn)步!?? 如果文章對(duì)你有幫助的話 歡迎 評(píng)論?? 點(diǎn)贊???? 收藏 ?? 加關(guān)注? 為了方便管理代碼,分兩個(gè)文件來寫: Test.cpp - 測(cè)試代碼邏輯 string.h - 模擬實(shí)現(xiàn) strin

    2024年02月12日
    瀏覽(33)
  • 【C++初階】STL之學(xué)習(xí)string的用法

    【C++初階】STL之學(xué)習(xí)string的用法

    STL是C++的標(biāo)準(zhǔn)模板庫 ,里面包含了許多 算法和數(shù)據(jù)結(jié)構(gòu) ,例如我們熟悉的順序表、鏈表、棧和隊(duì)列以及一些常見的算法等等,編程者想使用這些就可以直接從庫中調(diào)用,不必再自己造輪子了。 下面為STL內(nèi)容的一張圖: 接下來,我們要學(xué)習(xí)STL中的string。 string 是C++的一個(gè)類模

    2024年02月04日
    瀏覽(20)
  • 【C++初階】第八站:string類的模擬實(shí)現(xiàn)

    【C++初階】第八站:string類的模擬實(shí)現(xiàn)

    目錄 string類的模擬實(shí)現(xiàn) 經(jīng)典的string類問題 淺拷貝 深拷貝 寫時(shí)拷貝(了解) 構(gòu)造函數(shù) string的全缺省的構(gòu)造函數(shù): string的拷貝構(gòu)造函數(shù) 傳統(tǒng)寫法 現(xiàn)代寫法 string的賦值重載函數(shù) 傳統(tǒng)寫法 現(xiàn)代寫法 string的無參構(gòu)造函數(shù): 遍歷函數(shù) operator[ ] 迭代器 迭代器的底層實(shí)現(xiàn)begin和end:

    2024年04月28日
    瀏覽(22)
  • 【C++】模板初階——函數(shù)模板和類模板

    【C++】模板初階——函數(shù)模板和類模板

    ?? 作者簡(jiǎn)介:一名在后端領(lǐng)域?qū)W習(xí),并渴望能夠?qū)W有所成的追夢(mèng)人。 ?? 個(gè)人主頁:不 良 ?? 系列專欄:??C++ ???Linux ?? 學(xué)習(xí)格言:博觀而約取,厚積而薄發(fā) ?? 歡迎進(jìn)來的小伙伴,如果小伙伴們?cè)趯W(xué)習(xí)的過程中,發(fā)現(xiàn)有需要糾正的地方,煩請(qǐng)指正,希望能夠與諸君一同

    2024年02月10日
    瀏覽(21)
  • 【C++】模板初階 【 深入淺出理解 模板 】

    【C++】模板初階 【 深入淺出理解 模板 】

    如何實(shí)現(xiàn)一個(gè)通用的交換函數(shù)呢? 使用函數(shù)重載雖然可以實(shí)現(xiàn) ,但是有一下幾個(gè)不好的地方: 重載的函數(shù) 僅僅是類型不同 ,代碼復(fù)用率比較低, 只要有新類型出現(xiàn)時(shí),就需要用戶自己增加對(duì)應(yīng)的函數(shù) 代碼的可維護(hù)性比較低,一個(gè)出錯(cuò)可能所有的重載均出錯(cuò) 那能否 告訴編

    2024年02月05日
    瀏覽(84)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包