zoukankan      html  css  js  c++  java
  • allocator

    allocator 的使用方法

    转载 2007年06月23日 23:00:00
    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的一个有趣练习。

  • 相关阅读:
    系统综合实践第一次实践作业
    个人作业——软件工程实践总结作业
    个人作业——软件评测
    软件工程实践第五次作业
    Structured Multimodal Attentions for TextVQA
    文字版三国杀开发
    OO Unit 4 Summary
    TextCaps竞赛总结
    Multi-Source Pointer Network
    Pointer Generator Network
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8691473.html
Copyright © 2011-2022 走看看