• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Effective STL(3)——關(guān)聯(lián)容器

            1.理解相等(equality)和等價(jià)(equivalence)的區(qū)別

            相等的概念是基于operator==的。等價(jià)關(guān)系是以“在已排序的區(qū)間中對(duì)象值得相對(duì)順序”為基礎(chǔ)的。如果從每個(gè)標(biāo)準(zhǔn)關(guān)聯(lián)容器的排列順序來考慮等價(jià)關(guān)系,那么著將是有意義的。標(biāo)準(zhǔn)關(guān)聯(lián)容器室基于等價(jià)而不是相等的。標(biāo)準(zhǔn)關(guān)聯(lián)容器總是保持排列順序的,所以每個(gè)容器必須有一個(gè)比較函數(shù)(默認(rèn)less)來決定保持怎樣的順序。等價(jià)是按照比較函數(shù)子。因此,標(biāo)準(zhǔn)關(guān)聯(lián)容器的使用者要為所使用的每個(gè)容器指定一個(gè)比較函數(shù)(用來決定如何排序)。如果該關(guān)聯(lián)容器使用相等來決定兩個(gè)對(duì)象是否有相同的值,那么每個(gè)關(guān)聯(lián)容器除了用于排序的比較函數(shù)外,還需要另一個(gè)比較函數(shù)來決定兩個(gè)值是否相等(默認(rèn)情況下,該比較函數(shù)應(yīng)該是equal_to,但有趣的是equal_to從來沒有被用做STL的默認(rèn)比較函數(shù)。當(dāng)STL中需要相等判斷時(shí),一般的慣例是直接調(diào)用operator==。比如,非成員函數(shù)find算法就是這么做的)

            2.為包含指針的關(guān)聯(lián)容器指定比較類型

            why?第一條已經(jīng)說明關(guān)聯(lián)容器是要排序。每當(dāng)你要?jiǎng)?chuàng)建包含指針的關(guān)聯(lián)容器時(shí),一定要記住,容器將會(huì)按照指針的值進(jìn)行排序。一般是不是你希望的,所以你幾乎要?jiǎng)?chuàng)建自己的函數(shù)子類作為該容器的比較類型。

            3.總是讓比較函數(shù)在等值情況下返回false

            比較函數(shù)的返回值表明的是按照該函數(shù)定義的排列順序,一個(gè)值是否在另一個(gè)之前。相等的值從來不會(huì)有前后順序關(guān)系,所以,對(duì)于相等的值,比較函數(shù)應(yīng)該始終返回false。

            4.切勿直接修改set或multiset中的鍵。

            5??紤]用排序的vector替代關(guān)聯(lián)容器

            在排序的vector中存儲(chǔ)數(shù)據(jù)可能比在標(biāo)準(zhǔn)關(guān)聯(lián)容器中存儲(chǔ)同樣的數(shù)據(jù)要耗費(fèi)更少的內(nèi)存,而考慮到頁面錯(cuò)誤的因素,通過二分搜索法來查找一個(gè)排序的vector可能比查找一個(gè)標(biāo)準(zhǔn)關(guān)聯(lián)容器要更快一些。

            6.當(dāng)效率至關(guān)重要時(shí),請(qǐng)?jiān)趍ap::operator[]與map::insert之間謹(jǐn)慎做出選擇

            map::operator[]的設(shè)計(jì)目的是為了提供“添加和更新”的功能。添加一個(gè)新元素最好選后者insert。

            7.熟悉非標(biāo)準(zhǔn)的散列容器。

            posted on 2014-05-16 16:30 Daywei 閱讀(1354) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章檔案

            牛人博客

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久人人爽人人爽人人av东京热| 国产亚洲美女精品久久久2020| 久久成人18免费网站| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久国产香蕉一区精品| 2021最新久久久视精品爱| 久久亚洲国产欧洲精品一| 2020久久精品亚洲热综合一本| 波多野结衣中文字幕久久| 亚洲国产成人久久笫一页| 久久综合九色综合97_久久久| 久久亚洲AV无码西西人体| 国产精品久久永久免费| 久久天天婷婷五月俺也去| 九九热久久免费视频| 精品久久香蕉国产线看观看亚洲| 色妞色综合久久夜夜| 久久精品成人一区二区三区| www.久久热| 人妻无码中文久久久久专区| 亚洲一级Av无码毛片久久精品| 久久精品国产只有精品2020| 久久无码人妻一区二区三区午夜 | 一本色道久久88精品综合| 无码人妻久久一区二区三区蜜桃| 91精品国产91久久久久福利| 亚洲午夜久久久影院| 精品伊人久久久| 中文字幕精品久久| 久久乐国产综合亚洲精品| 久久国产综合精品五月天| 国产精品女同一区二区久久| 色综合久久天天综合| 精品久久久久久无码专区| 蜜臀av性久久久久蜜臀aⅴ| 97久久婷婷五月综合色d啪蜜芽| 色狠狠久久综合网| 中文字幕久久精品| 亚洲精品美女久久久久99| 久久国产精品77777| 丰满少妇高潮惨叫久久久|