文本圖像壓縮中需要?jiǎng)?chuàng)建在圖像中出現(xiàn)的形狀庫(kù)。這些形狀通常和字符有關(guān),在圖像中出現(xiàn)的形狀就會(huì)被指向圖形庫(kù)的指針替換。一般來(lái)說(shuō),雖然存在許多變體,但處理步驟包括如下:

  • 找出、分離并且抽取所有的標(biāo)記,即圖像中聚集在一起出現(xiàn)的黑色像素。

  • 建立一個(gè)包含圖像中發(fā)現(xiàn)所有標(biāo)記的庫(kù)

  • 通過(guò)識(shí)別圖像中的符號(hào)找到庫(kù)中與之最接近的標(biāo)記實(shí)現(xiàn),并度量一個(gè)標(biāo)記和下一個(gè)標(biāo)記的偏移值。

  • 壓縮符號(hào)順序和偏移并存儲(chǔ)入庫(kù)。由于這一步驟中所存儲(chǔ)的信息可以產(chǎn)生稱為重構(gòu)文本的原始圖像的近似,所以為了重構(gòu)圖像無(wú)損,需要包括下面處理步驟:存儲(chǔ)足夠的信息以完成從重構(gòu)文本中恢復(fù)原始圖像。

當(dāng)標(biāo)記被抽取出來(lái)以后,需要將其與已經(jīng)在庫(kù)中的標(biāo)記匹配,所有匹配庫(kù)成員的標(biāo)記都會(huì)被保存在一個(gè)集合中。如果當(dāng)前標(biāo)記與庫(kù)中現(xiàn)有的一個(gè)標(biāo)記足夠匹配的話,則將其添加到與改符號(hào)相應(yīng)的匹配標(biāo)記集中,盡管將一個(gè)標(biāo)記與每一個(gè)庫(kù)中模板進(jìn)行匹配查找出與其最接近模板的可靠,但在一個(gè)模板被發(fā)現(xiàn)于一個(gè)特定的相似閾值之內(nèi)時(shí)即立即終止運(yùn)算會(huì)更有效。如果沒(méi)有發(fā)現(xiàn)足夠近似的匹配點(diǎn),則將新標(biāo)記添加到庫(kù)中。模板匹配對(duì)成功識(shí)別標(biāo)記至關(guān)重要,匹配過(guò)程一般通過(guò)檢查誤差圖來(lái)實(shí)現(xiàn),誤差圖通過(guò)將新符號(hào)和庫(kù)成員逐比特進(jìn)行異或得到。在計(jì)算誤差圖之前,匹配的雙方必須要正確注冊(cè)。新符號(hào)添加在庫(kù)中每個(gè)符號(hào)之前,為此需要在庫(kù)中設(shè)置一個(gè)固定的參考點(diǎn)。

庫(kù)模板篩法造價(jià)信息

市場(chǎng)價(jià) 信息價(jià) 詢價(jià)
材料名稱 規(guī)格/型號(hào) 市場(chǎng)價(jià)
(除稅)
工程建議價(jià)
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報(bào)價(jià)日期
清水模板 2440×1220×18 查看價(jià)格 查看價(jià)格

五棵松

m2 13% 五棵松木業(yè)有限公司
清水模板 2440×1220×12 查看價(jià)格 查看價(jià)格

m2 13% 五棵松木業(yè)有限公司
清水模板 2440×1220×15 查看價(jià)格 查看價(jià)格

五棵松

m2 13% 五棵松木業(yè)有限公司
模板 帶膜 楊木 查看價(jià)格 查看價(jià)格

13% 河南豐潤(rùn)木業(yè)有限公司
模板 14MM厚,1.22*2.44 楊木 查看價(jià)格 查看價(jià)格

13% 鄭州市管城區(qū)愛(ài)紅模板經(jīng)營(yíng)部
模板 品種:松木紅;規(guī)格 (mm):1830×915×13;實(shí)際厚度(mm):13;備注:出廠價(jià);系列:松木紅; 查看價(jià)格 查看價(jià)格

美森

13% 哈爾濱美森經(jīng)貿(mào)有限公司
模板 18MM厚,0.915*1.83 楊木 查看價(jià)格 查看價(jià)格

13% 鄭州市管城區(qū)愛(ài)紅模板經(jīng)營(yíng)部
模板 15MM厚,1.22*2.44 楊木 查看價(jià)格 查看價(jià)格

13% 鄭州市管城區(qū)愛(ài)紅模板經(jīng)營(yíng)部
材料名稱 規(guī)格/型號(hào) 除稅
信息價(jià)
含稅
信息價(jià)
行情 品牌 單位 稅率 地區(qū)/時(shí)間
模板 租賃 查看價(jià)格 查看價(jià)格

m2 深圳市2016年12月信息價(jià)
模板 購(gòu)買(mǎi) 查看價(jià)格 查看價(jià)格

m2 深圳市2016年4月信息價(jià)
模板 租賃 查看價(jià)格 查看價(jià)格

m2 深圳市2016年4月信息價(jià)
模板 查看價(jià)格 查看價(jià)格

m2 深圳市2015年12月信息價(jià)
模板 查看價(jià)格 查看價(jià)格

m2 深圳市2015年12月信息價(jià)
建筑模板 1830×915×18一級(jí)白 查看價(jià)格 查看價(jià)格

佛山市2022年10月信息價(jià)
建筑模板 1830×915×18三級(jí)白 查看價(jià)格 查看價(jià)格

佛山市2022年10月信息價(jià)
建筑模板 1830×915×18三級(jí)白 查看價(jià)格 查看價(jià)格

佛山市2022年3季度信息價(jià)
材料名稱 規(guī)格/需求量 報(bào)價(jià)數(shù) 最新報(bào)價(jià)
(元)
供應(yīng)商 報(bào)價(jià)地區(qū) 最新報(bào)價(jià)時(shí)間
復(fù)合模板 復(fù)合模板|39.011m2 3 查看價(jià)格 成都同創(chuàng)友德商貿(mào)有限公司 全國(guó)   2020-11-27
復(fù)合模板 復(fù)合模板|4462.494m2 2 查看價(jià)格 成都久林建材有限公司 四川   2022-11-02
復(fù)合模板 復(fù)合模板|312.287m2 3 查看價(jià)格 成都同創(chuàng)友德商貿(mào)有限公司 全國(guó)   2020-11-27
復(fù)合模板 復(fù)合模板|35.628m2 3 查看價(jià)格 成都同創(chuàng)友德商貿(mào)有限公司 全國(guó)   2020-11-27
復(fù)合模板 復(fù)合模板|267.284m2 3 查看價(jià)格 成都同創(chuàng)友德商貿(mào)有限公司 全國(guó)   2020-11-27
復(fù)合模板 復(fù)合模板|34.177m2 3 查看價(jià)格 成都同創(chuàng)友德商貿(mào)有限公司 全國(guó)   2020-11-27
復(fù)合模板 復(fù)合模板|17903.104m2 3 查看價(jià)格 四川宏福建材貿(mào)易有限公司 四川   2020-07-09
BFA池模板 模板材質(zhì)為ABS|455m2 3 查看價(jià)格 東莞市步步升塑膠材料有限公司 全國(guó)   2019-10-15

庫(kù)模板篩法是一種模板匹配方法,主要基于標(biāo)記的特征,與輸入標(biāo)記明顯不同的符號(hào)不必匹配,例如在寬度和長(zhǎng)度上明顯不同的模板必定是不相似的。庫(kù)模板篩法主要基于面積和周長(zhǎng),當(dāng)抽取標(biāo)記后很容易得到這些數(shù)據(jù),然而在實(shí)踐的操作中并沒(méi)有看起來(lái)容易,一方面因?yàn)樗鼈兒蜆?biāo)記的寬度和高度有關(guān);另一方面因?yàn)樗鼈儗?duì)噪聲和數(shù)字化過(guò)程的參數(shù)特別敏感。其他看上去更確定的特征是垂直和水平的白行程數(shù)。庫(kù)模板篩法的一個(gè)更好基礎(chǔ)應(yīng)該是比較兩個(gè)標(biāo)記中黑像素團(tuán)的分布。通過(guò)將像素根據(jù)其質(zhì)心注冊(cè),然后將其劃分為圍繞質(zhì)心的4象限來(lái)實(shí)現(xiàn)。對(duì)于每個(gè)象限,計(jì)算其質(zhì)心:對(duì)4個(gè)局部質(zhì)心,分別計(jì)算其在兩個(gè)標(biāo)記中位置的距離,最后將4個(gè)距離平均。這一過(guò)程可能不斷地重復(fù),以確定一個(gè)基于原始質(zhì)心的0級(jí)上距離(改質(zhì)心距離為0,因?yàn)槭褂玫氖琴|(zhì)心注冊(cè))、一個(gè)如上所述的1級(jí)上的距離,以及更高級(jí)上的距離。測(cè)試表明,優(yōu)良的篩選結(jié)果往往是在1級(jí)距離上獲得的,更復(fù)雜的處理并無(wú)必要。

標(biāo)記(signature)是邊界的一維表達(dá),可以用多種方法來(lái)產(chǎn)生。其基本思想是將原始的二維邊界用元函數(shù)來(lái)表示,以降低表達(dá)難度。最簡(jiǎn)單的方法就是把從重心到邊界的距離作為角度的函數(shù)來(lái)標(biāo)記。

標(biāo)記與鏈碼同樣不受邊界平移的影響,但是當(dāng)邊界旋轉(zhuǎn)或者發(fā)生尺度變換時(shí),標(biāo)記格會(huì)發(fā)生改變。對(duì)于旋轉(zhuǎn)問(wèn)題,可以采用類似于鏈碼的旋轉(zhuǎn)歸一化方法進(jìn)行解決。更常用的方法是通過(guò)固定標(biāo)記的起始點(diǎn)來(lái)歸一化。例如,可以選擇離重心最遠(yuǎn)的邊界點(diǎn)作為起始點(diǎn),或者選擇主軸上的某一點(diǎn)。雖然后者的計(jì)算量比較大,但是它比前者更加可靠,因?yàn)樗玫搅怂械倪吔琰c(diǎn)來(lái)參與計(jì)算。而對(duì)尺度變化則可以通過(guò)幅度的歸一化來(lái)處理。

庫(kù)模板篩法模板匹配常見(jiàn)問(wèn)題

  • 模板 模板 模板

    新建土建算量工程時(shí),計(jì)算規(guī)則必須選擇消耗量定額時(shí) 才能套模板的子目,選擇清單就不可了, 答:你好:可以的,你選擇清單的時(shí)候也要選擇定額的計(jì)算規(guī)則。

  • 關(guān)于清單庫(kù)中的模板與查詢措施中的模板

    1、廣東地區(qū),建筑工程比如梁套模板做法我是選則清單中的模板工程還是措施項(xiàng)目中的模板、腳手架工程 2、如果我選擇清單中的模板工程,在措施項(xiàng)目中打鉤,工程量表達(dá)式都變?yōu)?,但單位還是平方米,而不是項(xiàng),需要...

  • 梁模板,板模板

    框架柱之間的梁套單梁模板(框架梁),在板中間的次梁(連系梁)套有梁板模板 板上沒(méi)有次梁,只是框架梁之間的板套平板的模板, 板上有次梁的,板與次梁的工程量合并套有梁板的定額子目, 是因?yàn)槟銢](méi)有仔細(xì)找,我...

概述

文本圖像(textual image 或 text image)是一種特殊類型的黑白二值圖像,它的主要特點(diǎn)是其內(nèi)容一般由文字部分組成。從數(shù)據(jù)壓縮的角度來(lái)看,文本圖像存在位圖和符號(hào)兩個(gè)層次的冗余,后者是由圖像中重復(fù)的符號(hào)引起的。針對(duì)文本圖像的壓縮標(biāo)準(zhǔn)和算法主要G3,G4JBIG和JBIG2等,其中 G3,G4和 JBIG 都是基于位圖層次的壓縮方法,而JBIG2是基于位圖和符號(hào)層次冗余的兩層壓縮方法。另外,基于混合光柵內(nèi)容( mixed raster content,MRC) 的DjVu 主要用于復(fù)合文檔的壓縮,它通過(guò)一個(gè)黑白二值掩碼(mask)將圖像分成前景和背景,然后對(duì)不同的部分再采用適合的算法分別進(jìn)行壓縮,其中對(duì)于掩碼的壓縮采用的是JB2算法。JB2 是 JBIG2 的一種變體,它和 JBIG2 的基本思想和實(shí)現(xiàn)方法都是類似的。JBIG2是最先進(jìn)的文本圖像壓縮算法,如上所述它實(shí)現(xiàn)了一個(gè)兩層壓縮結(jié)構(gòu):首先根據(jù)“字典”的思想,采用模式匹配策略將不同的符號(hào)存儲(chǔ)到一個(gè)模式字典中,這樣圖像中相同的符號(hào)就可以用字典中的匹配符號(hào)及其索引進(jìn)行替代;然后對(duì)于得到的字典、索引以及符號(hào)的位置信息再采用基于信息熵的算術(shù)編碼進(jìn)行壓縮。 模式匹配的過(guò)程中,所謂“相同”的符號(hào)是指其相對(duì)于人的視覺(jué)是相同的,而在位圖層次往往不完全相同。如何將視覺(jué)上相同的符號(hào)歸為一類是模式匹配算法面臨的一個(gè)很大挑戰(zhàn)。這是因?yàn)?,由于掃描過(guò)程中的抖動(dòng)、噪音 等原因,有些視覺(jué)上相同的符號(hào)在位圖層次可能有比較大的差異,而某些外形接近的不同符號(hào)在位圖層次的差異可能是比較小的。和英文文本圖像相比,中文文本圖像中的字符集規(guī)模更大,很多漢字結(jié)構(gòu)比較復(fù)雜,且形近字非常多。中文文本圖像的這些特點(diǎn)增加了對(duì)符號(hào)進(jìn)行模式匹配的難度 。

JBIG2 是由 ITU和ISO組成的二值圖像聯(lián)合專家組(joint bi-level image expert group,JBIG)提出的一個(gè)壓縮標(biāo)準(zhǔn)。JBIG2 的一個(gè)重要特點(diǎn)是:只規(guī)定了解碼的標(biāo)準(zhǔn)和流程,而并沒(méi)有定義一個(gè)明確的編碼器。JBIG2 將編碼程序開(kāi)放,是為了鼓勵(lì)研究者們針對(duì)不同特點(diǎn)的文本圖像開(kāi)發(fā)更加高效的編碼算法。

JBIG2 的主要技術(shù)最早由美國(guó)貝爾實(shí)驗(yàn)室的Howard 等開(kāi)發(fā),主要包括 “模式匹配與替換 ”(pattern matching and substitution,PM&S) 和“軟模式匹配”(soft pattern matching,SPM)技術(shù)。這些技術(shù)后來(lái)被ISO 采納成為了 JBIG2 標(biāo)準(zhǔn)的一部分。美國(guó)加州大學(xué)圣地亞哥分校的 Ye 等對(duì)JBIG2 進(jìn)行了系統(tǒng)的研究 ,主要從符號(hào)字典設(shè)計(jì) 、模式匹配速度和有損壓縮的重構(gòu)圖像質(zhì)量控制等方面提出了很多先進(jìn)的算法。對(duì)于有損壓縮系統(tǒng),Ye 等針對(duì)英文字符的特點(diǎn)提取了符號(hào)的尺寸、象限矩心距離(quadrant centroid distance,QCD)以及拓?fù)浣Y(jié)構(gòu)作為特征,并利用這些特征來(lái)減少有損壓縮中的替換誤差。由于 Ye 等在 JBIG2 方面所做出的出色工作,其研究成果通過(guò)加州大學(xué)圣地亞哥分校的技術(shù)轉(zhuǎn)移部門(mén)轉(zhuǎn)讓給了Apago 公司并應(yīng)用到其商業(yè)化的產(chǎn)品中,成功實(shí)現(xiàn)了技術(shù)成果的轉(zhuǎn)化。

意義

對(duì)于一些非常重要的正式文件,它的主要存儲(chǔ)方式為文本圖像。與文本文件相比較,圖像文件能夠?qū)?chǎng)景更加直觀、真實(shí)的進(jìn)行表述,對(duì)其不易進(jìn)行篡改或者偽造。比如一些更能體現(xiàn)其真實(shí)性和有效性的圖像文件,如包含手寫(xiě)簽名、銀行票據(jù)的圖像文件。當(dāng)今社會(huì),不管是在商業(yè)經(jīng)濟(jì)方面還是政府部門(mén)等領(lǐng)域,對(duì)于很多重要的信息都是以電子圖片的方式進(jìn)行交流的。然而,不管是什么事物,它都具有兩面性,在圖像文件的管理方面,有著不容忽視的劣勢(shì)。如果用圖像的形式存儲(chǔ)文字信息,信息量將變得很大,所需的存儲(chǔ)空間也比電子文本文件大,不利于文字信息的快速識(shí)別。隨著計(jì)算機(jī)技術(shù)的進(jìn)步,這些不足將會(huì)逐漸被克服。

  • 文本圖像檢索的實(shí)際應(yīng)用涉及面廣,可以運(yùn)用到辦公的文件管理、日常生活的文件查詢、國(guó)企銀行單位票據(jù)文件查詢和檢索等多個(gè)方面。

  • 文本圖像文件的高效、智能分類。在工作中,為了提高管理效率、使得信息的查詢更加方便,就需要對(duì)大量的文本圖像信息做一定的整理和分類。比如公司合同文件,它是依據(jù)公司標(biāo)志信息的不同,利用文本圖像檢索技術(shù)將大量的錯(cuò)綜復(fù)雜的圖像文件進(jìn)行分類和歸檔,高效智能的完成圖像文件的管理,提高了業(yè)務(wù)辦公的智能性和效率。

  • 文本圖像自動(dòng)查詢。雖然已經(jīng)有 PDF、WORD 等電子文檔查詢的應(yīng)用軟件,但是用于檢索文本圖像內(nèi)容的應(yīng)用軟件很罕見(jiàn)。日常生活中對(duì)文本圖像文件檢索的需求卻在增加。如果對(duì)大量文本圖像進(jìn)行管理,不僅需要大量的人力、物力,而且工作量也非常大。尤其是需要查找圖片文件中的關(guān)鍵字等特定信息,就要人工進(jìn)行查看每張圖的內(nèi)容,并且還要相當(dāng)仔細(xì),導(dǎo)致工作量的增加,效率也不高,不但成本耗費(fèi)大,也不能滿足當(dāng)前實(shí)際應(yīng)用的需求。本文所研究的文本圖像自動(dòng)檢索技術(shù)實(shí)現(xiàn)文本圖像文件的快速查詢和智能管理,能夠幫助文件管理

  • 人員快速、高效地處理圖像文本文件,具有較大的實(shí)際應(yīng)用意義。

  • 知識(shí)產(chǎn)權(quán)保護(hù)。隨著 IP 時(shí)代的到來(lái),人們對(duì)知識(shí)產(chǎn)權(quán)也越來(lái)越重視,并頒布了相關(guān)法律對(duì)其進(jìn)行保護(hù)。為了有效地管理和搜索查詢只是產(chǎn)權(quán)文件,可以使用文本圖像檢索技術(shù)。圖像文件保證了產(chǎn)權(quán)文件的不易篡改,自動(dòng)檢索技術(shù)提供了關(guān)鍵信息的快捷查詢。隨著文本圖像文件量的急劇增加,文本圖像的檢索技術(shù)的作用體現(xiàn)得越來(lái)越明顯。

  • 合同管理。在當(dāng)今法制社會(huì)中,具有法律效力的合同文件是經(jīng)濟(jì)市場(chǎng)中不可或缺的文件。合同文件的關(guān)鍵信息之一是個(gè)人簽章或者手寫(xiě)簽名。在合同文件圖像的管理中,管理文件的員工不需要埋頭在紙質(zhì)文檔中尋找領(lǐng)導(dǎo)需要的合同文件,只需敲敲手指就能在計(jì)算機(jī)上查找出來(lái)。手寫(xiě)字體的自動(dòng)檢索技術(shù)應(yīng)用到合同圖像文件中個(gè)人簽名內(nèi)容的識(shí)別,將大大提高對(duì)合同管理的效率。

  • 其它用途。文本圖像檢索技術(shù)同樣可以應(yīng)用到軍事中,對(duì)危險(xiǎn)病毒文件自動(dòng)監(jiān)控和攔截以及對(duì)遠(yuǎn)方地理信息的描述等等。

2100433B

庫(kù)模板篩法模板匹配文獻(xiàn)

利用遺傳算法實(shí)現(xiàn)模板匹配的瓷磚分選 利用遺傳算法實(shí)現(xiàn)模板匹配的瓷磚分選

格式:pdf

大?。?span id="jd93oc7" class="single-tag-height">518KB

頁(yè)數(shù): 4頁(yè)

評(píng)分: 4.6

提出瓷磚圖像模板匹配的匹配程度公式,分析匹配度與公式值的關(guān)系.將匹配程度公式作為最優(yōu)保留個(gè)體遺傳算法的目標(biāo)函數(shù),設(shè)立遺傳算法的3個(gè)變量,即x軸起始位置、y軸起始位置和放大倍數(shù)對(duì)圖像的模板進(jìn)行匹配優(yōu)化.實(shí)驗(yàn)結(jié)果表明,遺傳算法的匹配結(jié)果基本穩(wěn)定,能滿足工業(yè)實(shí)時(shí)性的要求,模板的大小同匹配時(shí)間成反比,同效果成正比.

立即下載
基于網(wǎng)格的重構(gòu)曲面再設(shè)計(jì)中的模板匹配 基于網(wǎng)格的重構(gòu)曲面再設(shè)計(jì)中的模板匹配

格式:pdf

大?。?span id="m94r2b2" class="single-tag-height">518KB

頁(yè)數(shù): 4頁(yè)

評(píng)分: 4.6

提出了重構(gòu)曲面的一種基于三角網(wǎng)格拼接與融合的再設(shè)計(jì)方法 ,可方便靈活地實(shí)現(xiàn)同類型產(chǎn)品優(yōu)良設(shè)計(jì)的結(jié)合。提出的網(wǎng)格模板的定位算法保證了網(wǎng)格模板與再設(shè)計(jì)模型空間位置的匹配 ;角度匹配算法保證了模板與再設(shè)計(jì)模型之間最大限度的貼合 ,為最終再設(shè)計(jì)網(wǎng)格的構(gòu)成和再設(shè)計(jì)曲面的光順性奠定了基礎(chǔ)。這些算法在多個(gè)再設(shè)計(jì)實(shí)例中得到應(yīng)用 ,取得了良好的效果

立即下載

標(biāo)準(zhǔn)模板庫(kù)是一個(gè)C 軟件庫(kù),大量影響了C 標(biāo)準(zhǔn)程序庫(kù)但并非是其的一部分。其中包含4個(gè)組件,分別為算法、容器、函數(shù)、迭代器。

模板是C 程序設(shè)計(jì)語(yǔ)言中的一個(gè)重要特征,而標(biāo)準(zhǔn)模板庫(kù)正是基于此特征。標(biāo)準(zhǔn)模板庫(kù)使得C 編程語(yǔ)言在有了同Java一樣強(qiáng)大的類庫(kù)的同時(shí),保有了更大的可擴(kuò)展性。

在C 標(biāo)準(zhǔn)中,STL被組織為下面的13個(gè)頭文件:、 、 、 、 、 、 、 、 、 。

標(biāo)準(zhǔn)模板庫(kù)歷史

標(biāo)準(zhǔn)模板庫(kù)系由Alexander Stepanov創(chuàng)造于1979年前后,這也正是比雅尼·斯特勞斯特魯普創(chuàng)造C 的年代。

雖然David R. Musser于1971年開(kāi)始即在計(jì)算機(jī)幾何領(lǐng)域發(fā)展并倡導(dǎo)某些泛型程序設(shè)計(jì)觀念,但早期并沒(méi)有任何編程語(yǔ)言支持泛型程序設(shè)計(jì)。第一個(gè)支持泛型概念的語(yǔ)言是Ada。Alex和Musser曾于1987開(kāi)發(fā)出一套相關(guān)的Ada library.

標(biāo)準(zhǔn)模板庫(kù)設(shè)計(jì)人Stepanov早期從事教育工作,1970年代研究泛型程序設(shè)計(jì),那時(shí)他與其同事一起在GE公司開(kāi)發(fā)出一個(gè)新的程序語(yǔ)言——Tecton。

1983年,Stepanov先生轉(zhuǎn)至Polytechnic大學(xué)教書(shū),繼續(xù)研究泛型程序設(shè)計(jì),同時(shí)寫(xiě)了許多Scheme的程序,應(yīng)用在graph與network的算法上,1985年又轉(zhuǎn)至GE公司專門(mén)教授高階程序設(shè)計(jì),并將graph與network的Scheme程序,改用Ada寫(xiě),用了Ada以后,他發(fā)現(xiàn)到一個(gè)動(dòng)態(tài)(dynamically)類型的程序(如Scheme)與強(qiáng)制(strongly)類型的程序(如Ada)有多么的不同。

在動(dòng)態(tài)類型的程序中,所有類型都可以自由的轉(zhuǎn)換成別的類型,而強(qiáng)制類型的程序卻不能。但是,強(qiáng)制類型在出錯(cuò)時(shí)較容易發(fā)現(xiàn)程序錯(cuò)誤。

1988年Stepanov先生轉(zhuǎn)至HP公司運(yùn)行開(kāi)發(fā)泛型程序庫(kù)的工作。此時(shí),他已經(jīng)認(rèn)識(shí)C語(yǔ)言中指針(pointer)的威力,他表示一個(gè)程序員只要有些許硬件知識(shí),就很容易接受C語(yǔ)言中指針的觀念,同時(shí)也了解到C語(yǔ)言的所有數(shù)據(jù)結(jié)構(gòu)均可以指針間接表示,這點(diǎn)是C與Ada、Scheme的最大不同。

Stepanov并認(rèn)為,雖然C 中的繼承功能可以表示泛型設(shè)計(jì),但終究有個(gè)限制。雖然可以在基礎(chǔ)類型(superclass)定義算法和接口,但不可能要求所有對(duì)象皆是繼承這些,而且龐大的繼承體系將減低虛擬(virtual)函數(shù)的運(yùn)行效率,這便違反的前面所說(shuō)的“效率”原則。

到了C 模板觀念,Stepanov參加了許多有關(guān)的研討會(huì),與C 之父Bjarne討論模板的設(shè)計(jì)細(xì)節(jié)。如,Stepanov認(rèn)為C 的函數(shù)模板(function template)應(yīng)該像Ada一樣,在聲明其函數(shù)原型后,應(yīng)該顯式的聲明一個(gè)函數(shù)模板之實(shí)例(instance);Bjarne則不然,他認(rèn)為可以通過(guò)C 的重載(overloading)功能來(lái)表達(dá)。

Stepanov想像中的函數(shù)模板:

in*.hpp
template
             
              
Tsquare(Tx){returnx*x;}

in*.cpp
doublesquare(double);
cout<
               
               

Bjarne認(rèn)為的函數(shù)模板:

in*.hpp
template
                
                 
Tsquare(Tx){returnx*x;}

in*.cpp
cout<
                  
                  

幾經(jīng)爭(zhēng)辯,Stepanov發(fā)現(xiàn)Bjarne是對(duì)的(引用侯俊杰《標(biāo)準(zhǔn)模板庫(kù)講座·第三章》)。事后Stepanov回想起來(lái)非常同意Bjarne的作法。

template 引數(shù)推導(dǎo)機(jī)制(arguments deduction ,在標(biāo)準(zhǔn)模板庫(kù)中占非常重要的角色。Alexander Stepanov(標(biāo)準(zhǔn)模板庫(kù)創(chuàng)造者)在與Dr. Dobb's Journal進(jìn)行的訪談中說(shuō)道‘1992 我重回generic-library的開(kāi)發(fā)工作。這時(shí)候C 有了template

“我發(fā)現(xiàn)Bjarne完成了一個(gè)非常美妙的設(shè)計(jì)。之前我在Bell Lab曾參與數(shù)次template的相關(guān)設(shè)計(jì)討論,并且非常粗暴地要求Bjarne應(yīng)該將C template設(shè)計(jì)得盡可能像Ada generics那樣。我想由于我的爭(zhēng)辯是如此地粗暴,他決定反對(duì)。我了解到在C 中除了擁有template classes之外還擁有template functions的重要性。然而我認(rèn)為template function應(yīng)該像Ada generics一樣,也就是說(shuō)它們應(yīng)該是顯式實(shí)例,Bjarne沒(méi)有聽(tīng)進(jìn)我的話,他設(shè)計(jì)了一個(gè)template function機(jī)制,其中的template是以一個(gè)重載化機(jī)制 (overloading mechanism來(lái)進(jìn)行隱式實(shí)例這項(xiàng)特殊的技術(shù)對(duì)我的工作具有關(guān)鍵性的影響,因?yàn)槲野l(fā)現(xiàn)它使我得以完成Ada不可能完成的許多動(dòng)作。我非常高興Bjarne當(dāng)初沒(méi)有聽(tīng)我的意見(jiàn)。’(DDJ 1995 年三月號(hào))”

事實(shí)上,C 的模板,本身即是一套復(fù)雜的宏語(yǔ)言(macro language),宏語(yǔ)言最大的特色為:所有工作在編譯時(shí)期就已完成。顯式的聲明函數(shù)模板之實(shí)例,與直接通過(guò)C 的重載功能隱式聲明,結(jié)果一樣,并無(wú)很大區(qū)別,只是前者加重程序員的負(fù)擔(dān),使得程序變得累贅。

1992年Meng Lee加入Alex的項(xiàng)目,成為另一位主要貢獻(xiàn)者。

1992年,HP泛型程序庫(kù)項(xiàng)目結(jié)束,小組解散,只剩下Stepanov先生與Meng Lee小姐(她是東方人,標(biāo)準(zhǔn)模板庫(kù)的英文名稱其實(shí)是取STepanov與Lee而來(lái)),Lee先前研究的是編譯器的制作,對(duì)C 的模板很熟,第一版的標(biāo)準(zhǔn)模板庫(kù)中許多程序都是Lee的杰作。

1993年,Andy Koenig到史丹佛演講,Stepanov便向他介紹標(biāo)準(zhǔn)模板庫(kù),Koenig聽(tīng)后,隨即邀請(qǐng)Stepanov參加1993年11月的ANSI/ISO C 標(biāo)準(zhǔn)化會(huì)議,并發(fā)表演講。

Bell實(shí)驗(yàn)室的Andrew Koenig于1993年知道標(biāo)準(zhǔn)模板庫(kù)研究計(jì)劃后,邀請(qǐng)Alex于是年11月的ANSI/ISO C 標(biāo)準(zhǔn)委員會(huì)會(huì)議上展示其觀念。并獲得與會(huì)者熱烈的回應(yīng)。

1994年1月6日,Koenig寄封電子郵件給Stepanov,表示如果Stepanov愿意將標(biāo)準(zhǔn)模板庫(kù)的幫助文檔撰寫(xiě)齊全,在1月25日前提出,便可能成為標(biāo)準(zhǔn)C 的一部分。Stepanov回信道:"Andy, are you crazy" 。 Koenig便說(shuō):"Well, yes I am crazy,but why not try it"。

Alex于是在次年夏天在Waterloo舉行的會(huì)議前完成其正式的提案,并以百分之八十壓倒性多數(shù),一舉讓這個(gè)巨大的計(jì)劃成為C Standard的一部分。

標(biāo)準(zhǔn)模板庫(kù)于1994年2月年正式成為ANSI/ISO C 的一部分,它的出現(xiàn),促使C 程序員的思維方式更朝向泛型編程(generic program)發(fā)展。

標(biāo)準(zhǔn)模板庫(kù)內(nèi)容

STL 將“在數(shù)據(jù)上執(zhí)行的操作”與“要執(zhí)行操作的數(shù)據(jù)分開(kāi)”,分別以如下概念指代:

  • 容器:包含、放置數(shù)據(jù)的地方。

  • 迭代器:在容器中指出一個(gè)位置、或成對(duì)使用以劃定一個(gè)區(qū)域,用來(lái)限定操作所涉及到的數(shù)據(jù)范圍。

  • 算法:要執(zhí)行的操作。

標(biāo)準(zhǔn)模板庫(kù)包含了序列容器(sequence containers)與關(guān)系容器(associative containers)。

序列容器包括vector,list,forward_list,deque和array等。

關(guān)聯(lián)容器包括set,multiset,map,multimap,unordered_set,bitset和valarray等。

標(biāo)準(zhǔn)模板庫(kù)迭代器

迭代器是泛化的指針,通過(guò)使用迭代器,開(kāi)發(fā)者可以操作數(shù)據(jù)結(jié)構(gòu)而無(wú)需關(guān)心其內(nèi)部實(shí)現(xiàn)。根據(jù)迭代器的操作方式的不同,迭代器分為五種:

  • 輸入迭代器

  • 輸出迭代器

  • 前向迭代器

  • 雙向迭代器

  • 隨機(jī)訪問(wèn)迭代器

標(biāo)準(zhǔn)模板庫(kù)算法

STL提供了一些常見(jiàn) 的算法,如排序和搜索等。這些算法與數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)進(jìn)行了分離。因此,用于也可對(duì)自定義的數(shù)據(jù)結(jié)構(gòu)使用這些算法,只需讓這些自定義的數(shù)據(jù)結(jié)構(gòu)擁有算法所預(yù)期的迭代器。

標(biāo)準(zhǔn)模板庫(kù)函數(shù)對(duì)象

狹義的函數(shù)對(duì)象即重載了操作符()的類的實(shí)例,而廣義來(lái)講所有可用 x(...) 形式調(diào)用的 x 都可稱為函數(shù)對(duì)象、或曰可調(diào)用對(duì)象。

標(biāo)準(zhǔn)模板庫(kù)適配器

適配器(Adaptor)為一個(gè)模板類,用于提供接口映射。

標(biāo)準(zhǔn)模板庫(kù)與C 標(biāo)準(zhǔn)程序庫(kù)的差異

一個(gè)常見(jiàn)的誤解是STL是C 標(biāo)準(zhǔn)程序庫(kù)的一部分,但事實(shí)上并非如此。例如hash table的數(shù)據(jù)結(jié)構(gòu)實(shí)當(dāng)前STL中有 模板可供調(diào)用,但C 標(biāo)準(zhǔn)程序庫(kù)一直到C 11才加入了 。 2100433B

afximpl.h 實(shí)現(xiàn)了一套模板庫(kù),如CArray, CList, CMap等。因?yàn)樵诎l(fā)布時(shí)STL尚未進(jìn)入C 語(yǔ)言標(biāo)準(zhǔn),因此ATL自行開(kāi)發(fā)實(shí)現(xiàn)了一套。

ATL定義三個(gè)宏來(lái)來(lái)影響生成的COM服務(wù)器的優(yōu)化。

  • _ATL_MIN_CRT 服務(wù)器不鏈接標(biāo)準(zhǔn)的C/C 運(yùn)行庫(kù),并且ATL提供了函數(shù)malloc、realloc、new和delete的一個(gè)實(shí)現(xiàn)。不能調(diào)用任何其他的C/C 運(yùn)行庫(kù)的函數(shù)。_mainATL向?qū)傻腁TL工程為所有的Release版本的定義了_ATL_MIN_CRT,但是沒(méi)有為Debug版本定義這個(gè)符號(hào)宏。

  • _ATL_DLL 服務(wù)器動(dòng)態(tài)鏈接工具函數(shù)庫(kù)atl.dll

  • _ATL_STATIC_REGISTRY 服務(wù)器靜態(tài)鏈接對(duì)組件注冊(cè)的支持

Debug配置沒(méi)有定義上述三個(gè)符號(hào)宏。Release MinSize配置定義了_ATL_MIN_CRT和_ATL_DLL。Release MinDependency配置定義了_ATL_MIN_CRT和_ATL_STATIC_REGISTRY。

庫(kù)模板篩法相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識(shí)
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時(shí)籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無(wú)線POS機(jī) 廣東合正采購(gòu)招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國(guó)際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計(jì)量泵 廣州采陽(yáng)招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國(guó)際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計(jì)量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 廣東國(guó)咨招標(biāo)有限公司 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 當(dāng)代建筑大師 廣西北纜電纜有限公司 拆邊機(jī) 大山檳榔 上海地鐵維護(hù)保障有限公司通號(hào)分公司 甘肅中維國(guó)際招標(biāo)有限公司 舌花雛菊 華潤(rùn)燃?xì)猓ㄉ虾#┯邢薰? 湖北鑫宇陽(yáng)光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無(wú)縫鋼管 中國(guó)石油煉化工程建設(shè)項(xiàng)目部 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 建設(shè)部關(guān)于開(kāi)展城市規(guī)劃動(dòng)態(tài)監(jiān)測(cè)工作的通知 電梯平層準(zhǔn)確度 廣州利好來(lái)電氣有限公司 蘇州弘創(chuàng)招投標(biāo)代理有限公司