亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        《C++編程規(guī)范》筆記(設(shè)計風格)

        字號:

        第1條:一個實體應(yīng)該只有一個緊湊的職責
            單一職責原則。這個原則并不那么容易執(zhí)行,即使是STL這樣的程序庫,也一樣會犯違反該原則的錯誤。在這里,舉了兩個違反這一原則的實現(xiàn):realloc和stl 中的basic_string。不過,對于basic_string,我想比起MFC中的CString還是好了不少。在《Exceptional C++ style》中,對basic_string作了剖析,并且得出一個普遍的原則:盡量將函數(shù)實現(xiàn)為獨立的函數(shù)而不是成員函數(shù)。
             嘗試用一句話來說明一個模塊的功能,既不多,也不少。如果無法用這樣的一句話加以概括,那么重新考慮規(guī)劃該模塊的職責?! ?BR>    第2條:正確、簡單和清晰第一
            簡單的說,堅持KISS原則:正確優(yōu)于速度,簡單優(yōu)于復(fù)雜,清晰優(yōu)于機巧,安全優(yōu)于不安全。
            程序必須為閱讀它的人編寫,只是順便用于機器執(zhí)行 * 編寫程序應(yīng)該以人為本,計算機第二
            計算機系統(tǒng)中、最快速、最可靠的組件都還不存在
            ......簡單設(shè)計的重要性怎么強調(diào)也不過分
            使一個正確的程序變快,比使一個快速的程序正確要容易的多
            避免使用程序設(shè)計語言的冷僻特性,應(yīng)該使用最簡單的有效技術(shù)
            不要毫無節(jié)制地重載運算符。
            不要濫用匿名變量,合理使用命名變量。當然,這不是說連vector().swap(other)這樣的慣用法也要排斥?!?BR>    第3條:編程中應(yīng)知道何時和如何考慮可伸縮性
            從字面上來看,這差不多等于外交辭令。答案無非是“適當?shù)摹睍r候“適當?shù)亍笨紤]可伸縮性。這非常依賴于軟件工程師的經(jīng)驗和知識。所以,本條目也“適當?shù)亍被乇芰四欠N缺乏營養(yǎng)的教導(dǎo),著重討論算法復(fù)雜度的選擇問題。
            基本上,線性復(fù)雜度可以作為一個算法是否可選的分界點。值得花費精力避免選擇差于線性復(fù)雜度的算法,而不差于線性復(fù)雜度的算法則可以接受。所以,把性能放在嘴邊的兄弟們注意了,你的精力可別放錯了地方,高德納言猶在耳:不成熟的優(yōu)化是程序設(shè)計中的萬惡之源。必要時,先努力優(yōu)化復(fù)雜度(選擇好的算法----算法無用論者,去面壁?。?。
            順便提一句排序算法,通用排序算法的復(fù)雜度是O(NlgN),但是特定領(lǐng)域完全可以有更好復(fù)雜度的算法