您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關分配器有什么作用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
分配器是C++標準庫的重要組成部分,作用是:處理容器對內存的分配與釋放請求。換句話說,分配器用于封裝STL容器在內存管理上的低層細節。
分配器的作用
在C++編程中,分配器(英語:allocator)是C++標準庫的重要組成部分。
C++的庫中定義了多種被統稱為“容器”的數據結構(如鏈表、集合等),這些容器的共同特征之一,就是其大小可以在程序的運行時改變;為了實現這一點,進行動態內存分配就顯得尤為必要,在此分配器就用于處理容器對內存的分配與釋放請求。
換句話說,分配器用于封裝STL容器在內存管理上的低層細節。
默認情況下,C++標準庫使用其自帶的通用分配器,但根據具體需要,程序員也可自行定制分配器以替代之。
分配器最早由亞歷山大·斯特潘諾夫作為C++標準模板庫(Standard Template Library,簡稱STL)的一部分發明,其初衷是創造一種能“使庫更加靈活,并能獨立于底層數據模型的方法”,并允許程序員在庫中利用自定義的指針和引用類型;
但在將標準模板庫納入C++標準時,C++標準委員會意識到對數據模型的完全抽象化處理會帶來不可接受的性能損耗,為作折中,標準中對分配器的限制變得更加嚴格,而有鑒于此,與斯特潘諾夫原先的設想相比,現有標準所描述的分配器可定制程度已大大受限。
雖然分配器的定制有所限制,但在許多情況下,仍需要用到自定義的分配器,而這一般是為封裝對不同類型內存空間(如共享內存與已回收內存)的訪問方式,或在使用內存池進行內存分配時提高性能而為。除此以外,從內存占用和運行時間的角度看,在頻繁進行少量內存分配的程序中,若引入為之專門定制的分配器,也會獲益良多。
看完上述內容,你們對分配器有什么作用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。