码迷,mamicode.com
首页 >  
搜索关键字:agg allocator    ( 831个结果
vector的简单实现
功能尚不完全, 存在缺陷。定义Vector vec(10, 10)会报出异常, 原因是无法识别10是int型还是iterator型。注意几点:分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。所以应该使用标准库提供的allocator类来实现内存的控制。当...
分类:其他好文   时间:2014-10-05 20:04:49    阅读次数:194
Allocator的简易实现
我们只需改动allocate和deallocate,来实现自己的内存分配策略即可。代码如下: 1 #ifndef ALLOCATOR_H 2 #define ALLOCATOR_H 3 4 #include 5 #include 6 7 template 8 class Allocato...
分类:其他好文   时间:2014-10-05 19:47:38    阅读次数:236
标准库Allocator(三)uninitialized_fill等函数的实现
前面我们使用了uninitialized_fill,来批量初始化某一段内存。 下面提供三个函数的实现代码,这三个代码的共同点是: 1.遇到错误,抛出异常 2.出现异常时,把之前构造的对象全部销毁 所以,这三个函数要么成功,要么无任何副作用。使用异常来通知使用者,所以在catch块中,处理完异常后要将...
分类:其他好文   时间:2014-10-03 02:33:33    阅读次数:324
标准库Allocator的简易实现(二)
自己实现Allocator并不难,其实只需要改变allocate和deallocate,来实现自己的内存分配策略。 下面是一个std::allocator的模拟实现 #ifndef ALLOCATOR_HPP #define ALLOCATOR_HPP #include #include templ...
分类:其他好文   时间:2014-10-02 20:34:33    阅读次数:264
标准库Allocator的使用(一)
上一篇我们提到了new运算符以及它的工作步骤,其实无非是把两项工作独立出来: 1.申请原始内存 2.执行构造函数 delete也涉及了两个工作: 1.执行析构函数 2.释放原始内存 其实标准库提供了另外一种更加高级的手段实现内存的分配和构造,就是std::allocator的职责。 allocato...
分类:其他好文   时间:2014-10-02 18:50:23    阅读次数:195
C++中vector的实现
注意几点: 分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。 所以应该使用标准库提供的allocator类来实现内存的控制。当然也可以重载operator new操作符,因为二者都是使用malloc作为底层实现,所以直接采用malloc也可以。 对象的复制必须使用系统提供的uninitialized_fill和uninitialized_...
分类:编程语言   时间:2014-10-02 18:37:43    阅读次数:231
Vector的一种实现
注意几点: 分配内存不要使用new和delete,因为new的同时就把对象构造了,而我们需要的是原始内存。 所以应该使用标准库提供的allocator类来实现内存的控制。当然也可以重载operator new操作符,因为二者都是使用malloc作为底层实现,所以直接采用malloc也可以。 对象的复...
分类:其他好文   时间:2014-09-29 00:11:26    阅读次数:303
关于allocator的一些基础用法以及简易的vector实现
首先,关于allocator戳旁边→维基百科-分配器(C++)这次我只用了其中的一部分API,来实现一个简易的vector容器,这个简易版vector实现了插入、删除、查找等简易功能,由于对右值的理解不足,所以这次并未实现关于右值的API。【MSDN-class allocator_base API...
分类:其他好文   时间:2014-09-24 00:27:55    阅读次数:284
Aggregate类型以及值初始化
引言 在C++中,POD是一个极其重要的概念。要理解POD类型,我们首先需要理解Aggregate类型。下文根据stackoverflow上的回答将对Aggregate类型做一个全面的解读。 对于Aggragates的定义 C++标准(C++ 03 8.5.1 §1)中的正式定义如下: An agg...
分类:其他好文   时间:2014-09-18 22:03:24    阅读次数:219
重温《STL源码剖析》笔记 第二章
第二章:空间配置器 allocator SGI特殊的空间配置器,std::alloc SGI是以malloc()和free()完成内存的配置与释放。 SGI设计了双层级配置器: 第一级配置器直接使用malloc()和free(); _malloc_alloc_template ...
分类:其他好文   时间:2014-09-02 22:40:25    阅读次数:237
831条   上一页 1 ... 79 80 81 82 83 84 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!