国内女人喷潮完整视频,免费看三片在线播放,国产人妻互换一区二区水牛影视,最新吃瓜爆料免费观看

收藏萬通
登錄
免費(fèi)注冊
移動網(wǎng)站
Hi,歡迎來到,萬通商務(wù)網(wǎng)
消息
管理中心
網(wǎng)站導(dǎo)航

分配器

在C++編程中,分配器(英語:allocator)是C++標(biāo)準(zhǔn)庫的重要組成部分。C++的庫中定義了多種被統(tǒng)稱為"容器"的數(shù)據(jù)結(jié)構(gòu)(如鏈表、集合等),這些容器的共同特征之一,即是其大小可以在程序的運(yùn)行時(shí)改變;為了實(shí)現(xiàn)這一點(diǎn),進(jìn)行動態(tài)內(nèi)存分配就顯得尤為必要,在此分配器就用于處理容器對內(nèi)存的分配與釋放請求。換句話說,于分配器用封裝STL容器在內(nèi)存管理上的低層細(xì)節(jié)。默認(rèn)情況下,C++標(biāo)準(zhǔn)庫使用其自帶的通用分配器,但根據(jù)具體需要,程序員也可自行定制分配器以替代之。
分配器
簡介
分配器最早由亞歷山大·斯特潘諾夫作為C++標(biāo)準(zhǔn)模板庫(Standard Template Library,簡稱STL)的一部分發(fā)明,其初衷是創(chuàng)造一種能"使庫更加靈活,并能獨(dú)立于底層數(shù)據(jù)模型的方法",并允許程序員在庫中利用自定義的指針和引用類型;但在將標(biāo)準(zhǔn)模板庫納入C++標(biāo)準(zhǔn)時(shí),C++標(biāo)準(zhǔn)委員會意識到對數(shù)據(jù)模型的完全抽象化處理會帶來不可接受的性能損耗,為作折中,標(biāo)準(zhǔn)中對分配器的限制變得更加嚴(yán)格,而有鑒于此,與斯特潘諾夫原先的設(shè)想相比,現(xiàn)有標(biāo)準(zhǔn)所描述的分配器可定制程度已大大受限。

雖然分配器的定制有所限制,但在許多情況下,仍需要用到自定義的分配器,而這一般是為封裝對不同類型內(nèi)存空間(如共享內(nèi)存與已回收內(nèi)存)的訪問方式,或在使用內(nèi)存池進(jìn)行內(nèi)存分配時(shí)提高性能而為。除此以外,從內(nèi)存占用和運(yùn)行時(shí)間的角度看,在頻繁進(jìn)行少量內(nèi)存分配的程序中,若引入為之專門定制的分配器,也會獲益良多。

功能
有線電視網(wǎng)的頻率不斷提升,功能不斷加強(qiáng),因此對分配器的要求不斷提高。

在接口設(shè)備上分配器是將音視頻信號分配至多個(gè)顯示設(shè)備或投影顯示系統(tǒng)上的一種控制設(shè)備。它是專門分配信號的接口形式的設(shè)備。分配器具有一個(gè)顯著的特點(diǎn)就是,可以將高清AV信號通過普通的同軸電纜線延長到200米左右,能徹底解決工程中因信號信號源1個(gè)而顯示設(shè)備有多個(gè)種類與數(shù)量而造成的問題。

用戶使用時(shí)先將信號通過一根標(biāo)配的高質(zhì)量線引接到分配器的INPUT上,分配器上有兩個(gè)或者四個(gè)甚至多個(gè)輸出口,其中可以接到本地顯示器上,其他的可以接到遠(yuǎn)端的顯示設(shè)備上,通過調(diào)節(jié)分配器上的亮度和對比度,就可以把遠(yuǎn)端顯示設(shè)備的圖像清晰度調(diào)整到與本地一樣的效果。通過調(diào)整后,遠(yuǎn)端顯示設(shè)備的圖像質(zhì)量會有質(zhì)的提高,分配器可以最大程度的消除脫尾和重影現(xiàn)象,完全可以滿足目前我國各種重點(diǎn)工程對高品質(zhì)圖像質(zhì)量的要求。

背景
亞歷山大·斯特潘諾夫與李夢(Meng Lee)在1994年將標(biāo)準(zhǔn)模板庫草案提交給C++標(biāo)準(zhǔn)委員會。提交伊始,草案就得到了委員會的初步支持,但委員會成員也對此提出了一些意見,尤其是要求斯特潘諾夫定制庫內(nèi)的容器,使之與底層存儲模型相獨(dú)立。作為對要求的回應(yīng),斯特潘諾夫發(fā)明了分配器,而正因此,標(biāo)準(zhǔn)模板庫的所有容器接口也被迫重寫,以與分配器相兼容。在修改標(biāo)準(zhǔn)模板庫以將之引入C++標(biāo)準(zhǔn)庫的過程中,許多標(biāo)準(zhǔn)委員會成員(如安德魯·克尼格與比雅尼·斯特勞斯特魯普)也與斯特潘諾夫協(xié)同工作。他們亦發(fā)現(xiàn)自定義分配器甚至有應(yīng)用于長生命周期(持續(xù)存儲)的標(biāo)準(zhǔn)模板庫容器的潛力,斯特潘諾夫?qū)Υ说脑u論則是"重要而有趣的見解"。

在原有的提案里的分配器設(shè)定中,斯特潘諾夫雜糅了一些語言特性(如可將模板參數(shù)也定義為模板),但由于當(dāng)時(shí)的編譯器皆無法處理之,所以最終并未被標(biāo)準(zhǔn)委員會所接納,斯特潘諾夫則如此描述當(dāng)時(shí)的情形:"比雅尼·斯特勞斯特魯普與安迪·克尼格需要花大量時(shí)間來檢查我們是否正確使用了這些未實(shí)現(xiàn)的特性。"在分配器應(yīng)用后,之前庫中直接使用的指針與引用類型也可以分配器所定義的類型替代,斯特潘諾夫亦曾如此描述分配器:"標(biāo)準(zhǔn)模板庫有個(gè)不錯(cuò)的特性便是:唯一要提及機(jī)器相關(guān)類型的地方……只需被封裝成(僅)約16行內(nèi)的代碼。"除此以外,斯特潘諾夫原本還打算在分配器中完全封裝存儲模型,但標(biāo)準(zhǔn)委員會意識到這一做法會造成無法接受的性能損失,因而為補(bǔ)償之,分配器的使用需求也做了一定擴(kuò)充。

分配器的應(yīng)用中比較特別的一點(diǎn)是,容器的實(shí)現(xiàn)過程中可能會假定分配器對指針與相關(guān)整型的類型定義與默認(rèn)分配器所提供的等價(jià),因而給定分配器類型的所有實(shí)例在比較時(shí)常會得出"相等"的結(jié)果,而這一效果實(shí)際上恰與設(shè)計(jì)分配器的初衷背道而馳,并使帶狀態(tài)分配器的可用性大大受限,斯特潘諾夫后來對此評論道:"(分配器)理論上說是不差的主意……但不幸的是在實(shí)踐中無法發(fā)揮其功效。 "他洞察到若要令分配器更加實(shí)用,就有必要針對核心語言的引用部分進(jìn)行修改。

技術(shù)指標(biāo)
1、頻率范圍:分配器使用在整個(gè)有線電視網(wǎng)中,因此應(yīng)具有寬帶的頻率特性;

輸入輸出阻抗:有線電視網(wǎng)中的射頻各種接口阻抗均應(yīng)為75歐,以實(shí)現(xiàn)阻抗匹配,因此分配器輸入端及輸出端阻抗均應(yīng)為75歐;

2、分配損失:在系統(tǒng)中總希望接入分配器損耗越小越好。分配損失Ls的多少和分配路數(shù)n的多少有關(guān),在理想情況下Ls=10lgn,當(dāng)n=2時(shí)為二分配器分配損失為3dB。實(shí)際上除了等分信號的損失外,還有一部分是由于分配器件本身有衰減,所以總比計(jì)算值要大。如在550-750MHz時(shí)二分配器分配損失工程上常取值3.5dB,4分配器損失常取值8dB;

3、相互隔離:相互隔離亦稱分配隔離。如果在分配器的某一個(gè)輸出端加入一個(gè)信號,該信號電平與其它輸出端該信號電平之差即是相互隔離,一般要求分配器輸出端隔離度大于20dB以上。如果駐波比太大,則傳輸信號就會在分配器的輸入端或者輸出端產(chǎn)生反射,對圖像質(zhì)量產(chǎn)生不良影響,如重影等。 分配器在工程中還分為過電型分配器、戶外型分配器、戶內(nèi)分配器等。

4、駐波比:全稱為電壓駐波比,又名VSWR和SWR,為英文Voltage Standing Wave Ratio的簡寫。

駐波比就是一個(gè)數(shù)值,用來表示天線和電波發(fā)射臺是否匹配。如果 SWR 的值等于1, 則表示發(fā)射傳輸給天線的電波沒有任何反射,全部發(fā)射出去,這是最理想的情況。如果SWR 值大于1, 則表示有一部分電波被反射回來,最終變成熱量,使得饋線升溫。被反射的電波在發(fā)射臺輸出口也可產(chǎn)生相當(dāng)高的電壓,有可能損壞發(fā)射臺。

5、反射損耗 是指負(fù)載直接接在信號源上所得到的功率和由于分配器匹配不好引起的反射功率之比 用dB表示

6、射頻特性

產(chǎn)品分類
1、A型分配器、G型分配器、M型分配器、F型分配器叫做板式分配器,其中A型90%用于國內(nèi)。

2、D型分配器、S型分配器、U型分配器叫做井式分配器,其中S型分配90%用于國內(nèi)。

美洲和歐洲產(chǎn)品的區(qū)別:美標(biāo)的帶安全閥,但是歐標(biāo)的沒有。

詳細(xì)說明
1、部件:小桶連接器(板式,井式分配器)、啤酒龍頭,啤酒塔,酒矛,啤酒扎啤機(jī),酒標(biāo)。

2、本產(chǎn)品與啤酒扎啤機(jī)、啤酒龍頭,啤酒塔,酒矛,制冷機(jī),酒標(biāo)配套使用,通過小桶連接器和酒矛的作用將啤酒送入啤酒扎啤機(jī),經(jīng)扎啤機(jī)制冷,混合閥閥門打開。打開二氧化碳壓力表,使二氧化碳壓入酒桶,啤酒從出酒龍頭放出。產(chǎn)品設(shè)計(jì)精湛,擺設(shè)大方,文明衛(wèi)生,使用方便,隨時(shí)飲用。是酒吧,賓館,餐廳,客廳等需喝扎啤的理想用品。

3、設(shè)計(jì)精湛,擺設(shè)大方,文明衛(wèi)生,使用方便,隨時(shí)飲用。

使用需求
任意滿足分配器使用需求的C++類都可作分配器使用。具體來說,當(dāng)一個(gè)類(在此設(shè)為類A)有為一個(gè)特定類型(在此設(shè)為類型T)的對象分配內(nèi)存的能力時(shí),該類就必須提供以下類型:A::pointer(指針),A::const_pointer(常量指針), A::reference(引用),A::const_reference(常量引用)及A::value_type(值類型),如此才能以通用的方式聲明對象與對該類對象的引用T。allocator提供這些指針或引用的類型定義的初衷,是隱蔽指針或引用的物理實(shí)現(xiàn)細(xì)節(jié);因?yàn)樵?6位編程時(shí)代,遠(yuǎn)指針(far pointer)是與普通指針非常不同的,allocator可以定義一些結(jié)構(gòu)來表示這些指針或引用,而容器類用戶不需要了解其是如何實(shí)現(xiàn)的。同時(shí)類A還需提供類型A::size_type(表示所用內(nèi)存大小的類型)與A::difference_type(指針差值的類型),其中size_type類型是用于表示類A所定義的分配模型中的單個(gè)對象最大尺寸的無符號整型,而difference_type類型是帶符號整型,用于表示分配模型內(nèi)的兩個(gè)指針的差異值。

雖然按照標(biāo)準(zhǔn),在庫的實(shí)現(xiàn)過程中允許假定分配器(類)A的A::pointer(指針)與A::const_pointer(常量指針)即是對T*與T const*的簡單的類型定義,但一般更鼓勵(lì)支持通用分配器。

另外,設(shè)有對于為某一對象類型T所設(shè)定的分配器A,則A必須包含四項(xiàng)成員函數(shù),分別為分配函數(shù)、解除分配函數(shù)、最大個(gè)數(shù)函數(shù)和地址函數(shù)。

分配函數(shù)用以進(jìn)行內(nèi)存分配,形如A::pointer A::allocate(size_type n, A::const_pointer hint = 0)。其中調(diào)用參數(shù)n即為需要分配的對象個(gè)數(shù),另一調(diào)用參數(shù)hint(須為指向已為A所分配的某一對象的指針)則為可選參數(shù),可用于在分配過程中指定新數(shù)組所在的內(nèi)存地址,以提高引用局部性,但在實(shí)際的分配過程中程序也可以根據(jù)情況自動忽略掉該參數(shù)。該函數(shù)調(diào)用時(shí)會返回指向分配所得的新數(shù)組的第一個(gè)元素的指針,而這一數(shù)組的大小足以容納n個(gè)T類元素。在此需要注意的是,調(diào)用時(shí)只為此數(shù)組分配了內(nèi)存,而并未實(shí)際構(gòu)造對象。

解除分配函數(shù)形如void A::deallocate(A::pointer p, A::size_type n)。其中p為需要解除分配的對象指針(以A::allocate函數(shù)所返回的指針做參數(shù)),n為對象個(gè)數(shù),而調(diào)用該函數(shù)時(shí)即是將以p起始的n個(gè)元素解除分配,但同時(shí)并不會析構(gòu)之。C++標(biāo)準(zhǔn)明確要求在調(diào)用deallocate之前,該地址空間上的對象已經(jīng)被析構(gòu)。

最大個(gè)數(shù)函數(shù)形如A::max_size(),調(diào)用時(shí)返回調(diào)用一次分配函數(shù)A::allocate所能成功分配的元素的最大個(gè)數(shù),其返回值等價(jià)于A::size_type(-1) / sizeof(T)的結(jié)果 。

地址函數(shù)形如A::pointer A::address ( reference x ),調(diào)用時(shí)返回一個(gè)指向x的指針。

除此以外,由于對象的構(gòu)造/析構(gòu)過程與分配/解除分配過程分別進(jìn)行 ,因而分配器還需要成員函數(shù)A::construct(構(gòu)造函數(shù))與A::destroy(析構(gòu)函數(shù))以對對象進(jìn)行構(gòu)造與析構(gòu),且兩者應(yīng)等價(jià)于如下函數(shù):

template void A::construct(A::pointer p, A::const_reference t) { new ((void*) p) T(t); } template void A::destroy(A::pointer p){ ((T*)p)->~T(); }

以上代碼中使用了placement new語法,且直接調(diào)用了析構(gòu)函數(shù)。

分配器應(yīng)是可復(fù)制構(gòu)造的,任舉一例,為T類對象而設(shè)的分配器可由另一為U類所設(shè)的分配器構(gòu)造。若某分配器分配了一段存儲空間,則這段存儲空間只能由與該分配器等價(jià)的分配器解除分配。分配器還需要提供一個(gè)模板類成員函數(shù)template struct A::rebind { typedef A other; };,以模板 (C++)參數(shù)化的方式,借之來針對不同的數(shù)據(jù)類型獲取不同的分配器。例如,若給定某一為整型(int)而設(shè)的分配器IntAllocator,則可執(zhí)行IntAllocator::rebind::other以獲取對應(yīng)長整型(long)的相關(guān)分配器。實(shí)際上,stl::list實(shí)際要分配的是包含了雙向鏈表指針的node,而不是實(shí)際分配int類型,這是引入了rebind的初衷。

與分配器相關(guān)聯(lián)的operator ,僅當(dāng)一個(gè)allocator分配的內(nèi)存可以被另一個(gè)allocator釋放時(shí),上述相等比較算符返回真。operator !=的返回結(jié)果與之相反。

自定義分配器
定義自定義分配器的主要原因之一是提升性能。利用專用的自定義分配器可以提高程序的性能,又或提高內(nèi)存使用效率,亦或兩者兼而有之。默認(rèn)分配器使用new操作符分配存儲空間,而這常利用C語言堆分配函數(shù)(malloc())實(shí)現(xiàn)。由于堆分配函數(shù)常針對偶發(fā)的內(nèi)存大量分配作優(yōu)化,因此在為需要一次分配大量內(nèi)存的容器(如矢量、雙端隊(duì)列)分配內(nèi)存時(shí),默認(rèn)分配器一般效率良好。但是,對于映射表與雙向鏈表這類需要頻繁分配少量內(nèi)存的容器來說,若采用默認(rèn)分配器分配內(nèi)存,則通常效率很低。除此之外,基于malloc()的默認(rèn)分配器還存在許多問題,諸如較差的引用局部性,以及可能造成內(nèi)存碎片化。

有鑒于此,在這一情況下,人們常使用基于內(nèi)存池的分配器來解決頻繁少量分配問題。與默認(rèn)的"按需分配"方式不同,在使用基于內(nèi)存池的分配器時(shí),程序會預(yù)先為之分配大塊內(nèi)存(即"內(nèi)存池"),而后在需要分配內(nèi)存時(shí),自定義分配器只需向請求方返回一個(gè)指向池內(nèi)內(nèi)存的指針即可;而在對象析構(gòu)時(shí),并不需實(shí)際解除分配內(nèi)存,而是延遲到內(nèi)存池的生命周期完結(jié)時(shí)才真正解除分配。

在"自定義分配器"這一話題上,已有諸多C++專家與相關(guān)作者參與探討,例如斯科特·梅耶斯的作品《Effective STL》與安德烈·亞歷山德雷斯庫的《Modern C++ Design》都有提及。梅耶斯洞察到,若要求某一分配器的所有實(shí)例等效,則可移植的分配器必須不包含狀態(tài)。雖然C++標(biāo)準(zhǔn)鼓勵(lì)庫的實(shí)現(xiàn)者支持帶狀態(tài)的分配器,但梅耶斯稱,相關(guān)段落是"(看似)美妙的觀點(diǎn)",但也幾乎是空話,并稱分配器的限制"過于嚴(yán)苛"。

另外,在《C++程序設(shè)計(jì)語言》中,比雅尼·斯特勞斯特魯普則認(rèn)為"'嚴(yán)格限制分配器,以免各對象信息不同',這點(diǎn)顯然問題不大"(大意),并指出大部分分配器并不需要狀態(tài),甚至沒有狀態(tài)時(shí)性能反倒更佳。他提出了三個(gè)自定義分配器的用例:內(nèi)存池型的分配器、共享內(nèi)存型分配器與垃圾回收型分配器,并展示了一個(gè)分配器的實(shí)現(xiàn),此間利用了一個(gè)內(nèi)部內(nèi)存池,以快速分配/解除分配少量內(nèi)存。但他也提到,如此優(yōu)化可能已經(jīng)在他所提供的樣例分配器中實(shí)現(xiàn)。

自定義分配器的另一用途是調(diào)試內(nèi)存相關(guān)錯(cuò)誤。若要做到這一點(diǎn),可以編寫一個(gè)分配器,令之在分配時(shí)分配額外的內(nèi)存,并借此存放調(diào)試信息。這類分配器不僅可以保證內(nèi)存由同類分配器分配/解除分配內(nèi)存,還可在一定程度上保護(hù)程序免受緩存溢出之害。

使用方法

當(dāng)初始化標(biāo)準(zhǔn)容器時(shí),若需使用自定分配器,則可將其寫入模板參數(shù),以代替默認(rèn)的std::allocator,如下所示:

namespace std { template > class vector;// ...

正如其他所有C++類模板般,在初始化同一標(biāo)準(zhǔn)庫容器時(shí),若使用了不同的分配器,則所生成容器的類型亦不同。譬如,若函數(shù)需一整型矢量數(shù)組std::vector作為參數(shù),則其只能接受由默認(rèn)分配器生成的整型矢量數(shù)組。

C++11

通過加入"作用域"分配器,C++11標(biāo)準(zhǔn)進(jìn)一步強(qiáng)化了分配器接口,從而保證帶有嵌套式內(nèi)存分配特點(diǎn)的容器(如字符串矢量數(shù)組等)所分配到的內(nèi)存皆來自容器自身的分配器。

另外,C++11標(biāo)準(zhǔn)刪除了"給定類型的分配器在比較時(shí)總是相等"的模棱兩可的要求,使帶狀態(tài)分配器不僅實(shí)用性得到提升,而且可管理進(jìn)程外的共享內(nèi)存,F(xiàn)今分配器的作用多為讓程序員可以控制容器的內(nèi)存分配,而非適應(yīng)基底硬件的地址模型。事實(shí)上,C++11標(biāo)準(zhǔn)刪去了分配器"自適應(yīng)地址模型"的功能,結(jié)果抹消了其設(shè)計(jì)初衷。

  • 帶襯墊去除器的連續(xù)式物料分配器

    產(chǎn)品規(guī)格:
    產(chǎn)品數(shù)量:
    經(jīng)營模式:
    貿(mào)易型
    執(zhí)照認(rèn)證:
    未認(rèn)證
    最近更新:
    2024/4/19 14:42:10
    經(jīng)營品牌:
    概述 您的一次性識別任務(wù)既快速又簡單-使用帶襯墊去除器的brady材料分配器保持這種狀態(tài)。不要搖擺不定-加重底座和橡膠支腳在移動貼標(biāo)項(xiàng)目中將分配器保持在適當(dāng)?shù)奈恢谜嫉孛娣e小,節(jié)省空間創(chuàng)新
    ¥0元/件

    所在地:廣東廣州

    廣州通馳電子科技有限公司

  • 布袋除塵器、鍋爐脫硫除塵器、鍋爐靜電除塵器

    產(chǎn)品規(guī)格:
    2600*6800mm
    產(chǎn)品數(shù)量:
    100
    經(jīng)營模式:
    生產(chǎn)型
    執(zhí)照認(rèn)證:
    已認(rèn)證
    最近更新:
    2025/6/8 12:33:23
    經(jīng)營品牌:
    鹽城騰飛環(huán)保
    鍋爐除塵器按原理不同可以分為、蒸汽除塵器、布袋除塵器、鍋爐脫硫除塵器、鍋爐靜電除塵器、立窯布袋除塵器等。 立窯布袋除塵器 立窯大型布袋除塵器詳細(xì)介紹 工作原理
    ¥99999元/臺

    所在地:江蘇鹽城

    鹽城騰飛環(huán)保科技有限公司

  • Permco泵,Permco馬達(dá),Permco流量分配器

    產(chǎn)品規(guī)格:
    產(chǎn)品數(shù)量:
    經(jīng)營模式:
    貿(mào)易型
    執(zhí)照認(rèn)證:
    已認(rèn)證
    最近更新:
    2025/6/4 9:17:50
    經(jīng)營品牌:
    上海包勒機(jī)械設(shè)備有限公司優(yōu)勢供應(yīng);permco泵,permco馬達(dá),permco流量分配器 歡迎咨詢 permco泵: pclass=msonormalalign=lef
    ¥0元/

    所在地:上海上海

    上海包勒機(jī)械設(shè)備有限公司

關(guān)于我們 | 聯(lián)系我們 | 合作代理 | 客服中心 | 幫助信息 | 誠聘英才 | 網(wǎng)站地圖 | 加入收藏夾 | 意見反饋 | 快遞查詢 | 漢字轉(zhuǎn)換 | RSS訂閱
©2013-2015h665.cn 版權(quán)所有 粵ICP備14027189號-5 湘公網(wǎng)安備 43052302000106號

互聯(lián)網(wǎng)違法和不良信息24小時(shí)舉報(bào)電話:13437489760 admin@h665.cn