博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
allocator
阅读量:6389 次
发布时间:2019-06-23

本文共 740 字,大约阅读时间需要 2 分钟。

allocator 的使用方法

转载 2007年06月23日 23:00:00
  • 5442
C++标准库中的Allocator有一个复杂而低层次的接口[注1]。和new与delete不同,它们将内存分配与对象构造解耦。和malloc与free不同,它们要求你明确正在分配的内存的数据类型和对象数目。

    通 常,这不成为问题。Allocator拥有低层次的接口是因为它们是低层次的概念:它们通常隐藏在容器类内部,而不属于普通用户的代码。然而,有时你可能 不得不关心allocator:当你自己写一个新的容器类的时候。Allocator比new/delete难用多了,因此,更容易发生错误。如果你写的 代码不得不使用allocator,如何确保代码正确?运行期的测试不能证明不存在错误,只能证明错误的存在。尽管如此,测试还是很重要--你越快发现 bug,它就越早被修正。

    所 有的标准容器类都接受一个allocator类作为其模板参数;这个参数有一个默认值,比如std::vector<int>是 vector<int,std:: allocator<int> >的简写。如果我们写了一个有额外正确性检查的alocator类,那就可以用它代替std::allocator<int>来作为 vector的第二模板参数。如果没有bug的话,vector的行为将会和以前一样。(当然,除了额外的检查将使它变慢。)

    这篇文章将展示这样一个debugging allocator类。它在其适用范围内是有价值的,并且实现它也是使用allocator的一个有趣练习。

转载于:https://www.cnblogs.com/gaoyuechen/p/8691473.html

你可能感兴趣的文章
Java 并发编程内部分享PPT分享
查看>>
关于discuz中禾金投票系统循环出现引导页的问题
查看>>
C#开源系统大汇总
查看>>
Linux服务器安全初始化自选安装Shell脚本
查看>>
PyCharm教程
查看>>
Python 简单的数据结构(一)
查看>>
谁说我们只会做工作流?做实验室管理系统我们也内行。
查看>>
yum安装开发库
查看>>
我的友情链接
查看>>
开源Python网络爬虫资料目录
查看>>
NSRunLoop Internals
查看>>
Hadoop2.4.1分布式安装
查看>>
PHP利用socket来实现POST数据
查看>>
Connection is read-only问题的产生原因与解决方法
查看>>
Proxmox VE 部署维护
查看>>
Linux软件包安装与卸载
查看>>
centos5.x安装sphinx
查看>>
3分钟搭建Ant Design Pro前端开发环境( MyClouds的前端选型)
查看>>
Scala各种用法
查看>>
Linux系统常用命令(二)
查看>>