EUGEN WOERNER分配器 EUGEN WOERNER分配器 EUGEN WOERNER分配器 EUGEN WOERNER分配器 EUGEN WOERNER分配器 在C++编程中,分配器(英语:allocator)是C++标准库的重要组成部分。C++的库中定义了多种被统称为“容器”的数据结构(如链表、集结等),这些容器的一同特征之一,就是其大小可以在程序的工作时改动;为了完结这一点,进行动态内存分配就显得尤为必要,在此分配器就用于处置容器对内存的分配与开释央求。换句话说,于分配器用封装STL容器在内存管理上的低层细节。默许情况下,C++标准库运用其自带的通用分配器,但根据具体需要,程序员也可自行定制分配器以替代之。 分配器**早由亚历山大·斯特潘诺夫作为C++标准模板库(Standard Template Library,简称STL)的一部分创造,其初衷是创造一种能“使库更加活络,并能独立于底层数据模型的方法”,并容许程序员在库中运用自定义的指针和引用类型;但在将标准模板库归入C++标准时,C++标准委员会意识到对数据模型的完全抽象化处置会带来不可接受的功用损耗,为作折中,标准中对分配器的束缚变得更加严峻,而有鉴于此,与斯特潘诺夫原先的幻想对比,现有标准所描写的分配器可定制程度已大大受限。 虽然分配器的定制有所束缚,但在许多情况下,仍需要用到自定义的分配器,而这通常是为封装对不一样类型内存空间(如同享内存与已回收内存)的访问方法,或在运用内存池进行内存分配时前进功用而为。除此以外,从内存占用和工作时间的角度看,在一再进行少量内存分配的程序中,若引入为之专门定制的分配器,也会获益良多。 EUGEN WOERNER分配器分配器**早由亚历山大·斯特潘诺夫作为C++标准模板库(Standard Template Library,简称STL)的一部分创造,其初衷是创造一种能“使库更加活络,并能独立于底层数据模型的方法”,并容许程序员在库中运用自定义的指针和引用类型;但在将标准模板库归入C++标准时,C++标准委员会意识到对数据模型的完全抽象化处置会带来不可接受的功用损耗,为作折中,标准中对分配器的束缚变得更加严峻,而有鉴于此,与斯特潘诺夫原先的幻想对比,现有标准所描写的分配器可定制程度已大大受限。虽然分配器的定制有所束缚,但在许多情况下,仍需要用到自定义的分配器,而这通常是为封装对不一样类型内存空间(如同享内存与已回收内存)的访问方法,或在运用内存池进行内存分配时前进功用而为。除此以外,从内存占用和工作时间的角度看,在一再进行少量内存分配的程序中,若引入为之专门定制的分配器,也会获益良多。 EUGEN WOERNER分配器 EUGEN WOERNER分配器