• <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>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            開區(qū)間與閉區(qū)間——從初等數(shù)學(xué)中吸取一點(diǎn)編程養(yǎng)分

            開區(qū)間和閉區(qū)間學(xué)過這個(gè)很多年了吧,估計(jì)是在初中時(shí)候的數(shù)學(xué)里。今天特意查了下,終于又知道了“[”是閉的,“”是開的(詳細(xì)請(qǐng)看下面的花色字體)。

            查這個(gè)好笑否?其實(shí)是有緣由的,當(dāng)然也有些用處,我慢慢道來

             

            1.      編程中,總是很頻繁的要實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行搜索,查找的代碼。以搜索舉例,要給定開關(guān)條件,比如寫一個(gè)函數(shù),找到login_beginlogin_end之間的帳戶。如果這樣的代碼寫得很多了,就會(huì)犯糊涂,這里給的條件login_beginlogin_end,到底有沒有包含login_beginlogin_end啊?不確定,然后翻代碼一看,噢,原來沒有包含呀。不確定包含與否的原因,是因?yàn)闆]有使用統(tǒng)一的開閉區(qū)間規(guī)則。

             

            2.      STL的容器和算法的實(shí)現(xiàn),都有一個(gè)共性: 迭代器構(gòu)成的區(qū)間是前閉后開的, [vector::begin(), vector::end() ),這樣在使用的時(shí)候就不會(huì)犯糊涂了;

             

            3.      C++舉例,for(int i= 0; i < 10; ++i)這樣的迭代過程,使用的也是一個(gè)前閉后開區(qū)間,[010,如果這樣寫for(int i= 0; i <= 9; ++i),雖然等價(jià),但已不是一個(gè)良好的格式了;

             

            4.     最后所說的吸取養(yǎng)分,總結(jié)成如下這句話:業(yè)務(wù)邏輯上和項(xiàng)目代碼里使用統(tǒng)一的開閉區(qū)間規(guī)則,推薦使用前閉后開“[ ”,為什么?因?yàn)樗詻]原因。

             

             

            ////////////////////////////////////////////////////////////////////////

            設(shè) a, b 是兩個(gè)實(shí)數(shù), a ≤ b.

            1
            滿足 a ≤ x ≤ b 的實(shí)數(shù) x 的集合,
                 
            表示為 [ a, b ], 叫做閉區(qū)間;

            2
            滿足 a x b 的實(shí)數(shù) x 的集合,
                 
            表示為 ( a, b ), 叫做開區(qū)間;

            3
            滿足 a ≤ x b a x ≤ b 的實(shí)數(shù) x 的集合,
                 
            分別表示為 [ a, b ), ( a, b ], 叫做半開區(qū)間.

            這里實(shí)數(shù) a, b 叫做區(qū)間的端點(diǎn).

            posted on 2008-12-25 17:24 肥仔 閱讀(4605) 評(píng)論(4)  編輯 收藏 引用 所屬分類: 編程思想

            評(píng)論

            # re: 開區(qū)間與閉區(qū)間&mdash;&mdash;從初等數(shù)學(xué)中吸取一點(diǎn)編程養(yǎng)分  回復(fù)  更多評(píng)論   

            使用前閉后開并非沒有原因,begin + count = end, end - begin = count,多么方便:)
            2008-12-26 12:37 | NeutralEvil

            # re: 開區(qū)間與閉區(qū)間&mdash;&mdash;從初等數(shù)學(xué)中吸取一點(diǎn)編程養(yǎng)分  回復(fù)  更多評(píng)論   

            補(bǔ)充一點(diǎn),在STL里面,采用半開區(qū)間表示范圍,那就可以統(tǒng)一使用這樣的迭代形式:
            for (iter = con.begin(); iter != con.end(); ++iter) ...

            否則的話,random access iterator固然可以用<=來判斷終止,其他類型的iterator就不方便了。
            2008-12-26 12:45 | NeutralEvil

            # re: 開區(qū)間與閉區(qū)間&mdash;&mdash;從初等數(shù)學(xué)中吸取一點(diǎn)編程養(yǎng)分  回復(fù)  更多評(píng)論   

            @NeutralEvil
            第二條補(bǔ)充得太棒了,我沒有想到你補(bǔ)充的那點(diǎn),汗!
            STL的偉大,正是在抽象之后,形式上的統(tǒng)一,優(yōu)美啊。
            2008-12-26 21:39 | 肥仔

            # re: 開區(qū)間與閉區(qū)間&mdash;&mdash;從初等數(shù)學(xué)中吸取一點(diǎn)編程養(yǎng)分  回復(fù)  更多評(píng)論   

            這個(gè)問題我已經(jīng)也想過,我覺的從哲學(xué)上來思考的話, 應(yīng)該是一種平衡的思想, 即如果我們把整數(shù)從負(fù)無窮到正無窮按等長(zhǎng)區(qū)間來表示的話, 每個(gè)區(qū)間, {), 這樣每個(gè)人都很公平, 或者(]也可以;如果有的區(qū)間用[], 或(), 則一定會(huì)有區(qū)間是()或[],這樣顯的就不一致了.
            2008-12-27 14:32 | vcfly
            国产精品久久久久乳精品爆| 伊人色综合久久天天人手人婷| 久久综合88熟人妻| 久久精品国产99国产精偷| 国产福利电影一区二区三区久久久久成人精品综合 | 久久久久久久久无码精品亚洲日韩| 久久精品国产AV一区二区三区| 久久婷婷激情综合色综合俺也去| 久久97精品久久久久久久不卡| 久久精品国产精品亚洲下载| 97精品依人久久久大香线蕉97| 久久精品国产秦先生| 国产成人精品三上悠亚久久| 久久亚洲精品中文字幕三区| 国产精品久久久香蕉| 99久久综合国产精品二区| 色8久久人人97超碰香蕉987| 亚洲精品WWW久久久久久| 久久精品国产免费| 久久人人爽人人爽人人片AV不| 久久高清一级毛片| 久久这里只有精品久久| 久久久国产精品亚洲一区| 久久久久99这里有精品10 | 亚洲国产精品无码久久SM| 久久精品中文字幕一区| 伊人色综合久久| a高清免费毛片久久| 无码超乳爆乳中文字幕久久| 久久狠狠爱亚洲综合影院| 亚洲精品NV久久久久久久久久| 久久久久久久国产免费看| 国内精品免费久久影院| 亚洲国产精品久久66| 国产高潮国产高潮久久久91 | 亚洲伊人久久综合影院| 久久激情亚洲精品无码?V| 中文字幕久久欲求不满| 免费观看久久精彩视频| 91久久福利国产成人精品| 国产精品热久久无码av|