Def*_*ult 10 c++ vector allocator
看着向量,我意识到在创建向量时我从未使用过第二个参数.
std::vector<int> myInts; // this is what I usually do
std::vector<int, ???> myOtherInts; // but is there a second argument there?
Run Code Online (Sandbox Code Playgroud)
看看上面的链接,它说它适用于:
要使用的分配器对象而不是构造新的对象.
或者,对于这个:
分配器:用于定义存储分配模型的分配器对象的类型.默认情况下,使用类型T的allocator类模板,它定义了最简单的内存分配模型,并且与值无关.
我想这与内存管理有关.但是,我不知道如何使用它.
有关于此的任何指示?
默认分配器 ,std::allocator<>将处理由std::vector<>(和其他人)进行的所有分配。每次需要新的分配时,它都会从堆中进行新的分配。
通过提供自定义分配器,您可以预先分配一大块内存,然后将其分割,并在需要单独分配时分发较小的内存块。这将显着提高分配速度,这在游戏中是很好的,但与默认分配器相比,其代价是增加了复杂性。
某些std类型实现具有用于少量数据的基于堆栈的内部存储。例如,std::basic_string<>可能会使用所谓的小字符串优化,其中只有长于某个固定长度的字符串(例如 16 个字符(只是一个示例!))从分配器获取分配,否则使用内部数组。
| 归档时间: |
|
| 查看次数: |
1381 次 |
| 最近记录: |