最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 頭文件系列(set)詳解

 更新時(shí)間:2017年02月02日 16:47:16   投稿:hebedich  
一般而言,每個(gè)C++/C程序通常由頭文件和定義文件組成。頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明,而定義文件用于保存程序的實(shí)現(xiàn) 。

簡(jiǎn)介

頭文件包含 set 、 multiset 兩個(gè)類模版,這里要描述的概念與map非常相似,甚至連成員函數(shù)都幾乎一樣,所以這篇隨筆會(huì)很短。

set

set如果翻譯成中文應(yīng)該是集合的意思,這里更確切的說(shuō)是 唯一有序集合 ,性質(zhì)與map類似:

  1. 關(guān)聯(lián)性
  2. 元素唯一性
  3. 動(dòng)態(tài)增長(zhǎng)
  4. 有序性

此外的一個(gè)重要特點(diǎn)是:

Key與Value是同一個(gè)對(duì)象(自映射)

set == map

定義使用set的時(shí)候只需要傳入一個(gè)類型參數(shù),這個(gè)類型即是key,也是value。 實(shí)際上, set是map的特殊情況 ,雖然set沒有鍵值對(duì)這種元素形式,但set的key本身就是value,map上鍵值對(duì)得映射在這里可以看作是元素本身到本身的映射。 所以說(shuō), 兩者在實(shí)現(xiàn)上應(yīng)該是有非常大的重合的 。 而從概念上來(lái)說(shuō),set完全可以由map來(lái)實(shí)現(xiàn),從而成為一個(gè)容器適配器。 但沒有那么做的原因,我想最大程度上是為了節(jié)約內(nèi)存吧,value值的保存完全是沒有必要的。

實(shí)現(xiàn)

通過查看VS 2013版本的C++頭文件可以發(fā)現(xiàn),set和map都是直接共有繼承的_Tree類(紅黑樹),沒有任何其他私有成員。 編碼上的可重用性,佐證了上述想法。

與map不同之處

要說(shuō)有什么不同,那就是set不提供元素修改的功能----沒有operator[]、at函數(shù)。

一旦元素被插入集合,只能被刪除,不能被重新賦值。 可能對(duì)于集合這個(gè)概念來(lái)說(shuō),修改元素的動(dòng)作太不常見了,所以標(biāo)準(zhǔn)庫(kù)索性就去掉了這個(gè)功能。

multiset

與multimap類似,這個(gè)類模版相當(dāng)于是支持多個(gè)鍵值的set版本。

相關(guān)文章

  • 如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)

    如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)

    這篇文章主要介紹了如何實(shí)現(xiàn)在C++中調(diào)用C函數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • c++實(shí)現(xiàn)單純形法現(xiàn)行規(guī)劃問題的求解(推薦)

    c++實(shí)現(xiàn)單純形法現(xiàn)行規(guī)劃問題的求解(推薦)

    這篇文章主要介紹了c++實(shí)現(xiàn)單純形法現(xiàn)行規(guī)劃問題的求解,本文針對(duì)問題通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • C++中使用vector存儲(chǔ)并遍歷數(shù)據(jù)的基本步驟

    C++中使用vector存儲(chǔ)并遍歷數(shù)據(jù)的基本步驟

    C++標(biāo)準(zhǔn)模板庫(kù)(STL)提供了多種容器類型,包括順序容器、關(guān)聯(lián)容器、無(wú)序關(guān)聯(lián)容器和容器適配器,每種容器都有其特定的用途和特性,這篇文章主要介紹了C++中使用vector存儲(chǔ)并遍歷數(shù)據(jù)的基本步驟,需要的朋友可以參考下
    2025-01-01
  • C++遍歷文件夾下文件的方法

    C++遍歷文件夾下文件的方法

    這篇文章主要介紹了C++遍歷文件夾下文件的方法,實(shí)例分析了C++針對(duì)文件夾遍歷的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Windows進(jìn)程崩潰問題的定位方法

    Windows進(jìn)程崩潰問題的定位方法

    這篇文章主要介紹了Windows進(jìn)程崩潰問題的定位方法,本文使用nstd工具進(jìn)行進(jìn)程崩潰時(shí)內(nèi)存和堆棧轉(zhuǎn)儲(chǔ)的方法查明問題所在,需要的朋友可以參考下
    2015-04-04
  • 深入C語(yǔ)言把文件讀入字符串以及將字符串寫入文件的解決方法

    深入C語(yǔ)言把文件讀入字符串以及將字符串寫入文件的解決方法

    本篇文章是對(duì)C語(yǔ)言把文件讀入字符串以及將字符串寫入文件的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語(yǔ)言實(shí)現(xiàn)電話簿管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)電話簿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++相交鏈表和反轉(zhuǎn)鏈表詳解

    C++相交鏈表和反轉(zhuǎn)鏈表詳解

    這篇文章主要介紹了C++相交鏈表和反轉(zhuǎn)鏈表,結(jié)合實(shí)例形式分析了C++相交鏈表和反轉(zhuǎn)鏈表的原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-08-08
  • C++實(shí)現(xiàn)洗牌發(fā)牌排序功能的示例代碼

    C++實(shí)現(xiàn)洗牌發(fā)牌排序功能的示例代碼

    本篇文章主要介紹了C++實(shí)現(xiàn)洗牌發(fā)牌排序功能的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-10-10
  • c++中const的使用詳解

    c++中const的使用詳解

    本篇文章是對(duì)c++中的const的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評(píng)論

安龙县| 安西县| 拜城县| 铅山县| 万州区| 云龙县| 彰化市| 定安县| 墨脱县| 扎囊县| 双流县| 新乡县| 稷山县| 耿马| 吴忠市| 大方县| 民丰县| 韩城市| 东明县| 穆棱市| 马尔康县| 蕉岭县| 喀喇沁旗| 金堂县| 寿阳县| 洪雅县| 阿巴嘎旗| 普陀区| 衡东县| 宜兰县| 辽中县| 峨眉山市| 五寨县| 连城县| 石泉县| 连江县| 许昌县| 遂溪县| 荣昌县| 札达县| 新竹县|