【问题标题】:Extension wrapper malloc allocator for C++ STLC++ STL 的扩展包装 malloc 分配器
【发布时间】:2010-02-07 17:02:50
【问题描述】:

显然,gcc 提供了一个“malloc_allocator”,用于 STL。它只是简单地包装了 malloc 和 free。还有一个用于内存不足处理程序的挂钩。我在哪里可以找到更多关于它的信息?我在哪里可以找到它的头文件?我使用的是 gcc 4.x。

【问题讨论】:

    标签: c++ stl malloc wrapper allocator


    【解决方案1】:

    Is这是你想要的吗?您需要包含并传入一个对象作为 STL 对象的分配器模板参数。

    【讨论】:

    • 是的!这就是我要的。但是为什么包含 呢?在我的系统上哪里可以找到这个文件 - 或者 - 你在哪里找到这个文件?
    • @prasoon99:谷歌搜索发现了这一点。 <new> 是系统头文件。我很想相信这已经存在于您的系统上,请尝试在 include\ext 中查找文件。
    • 我的问题是为什么 包含在文件中。我猜它在那里是因为使用了 std::bad_alloc()。
    • 下一个问题:如果我分配:std::vector > *v = new std::vector > (5) 那么什么是删除v的正确方法?
    • delete v; 应该这样做。请注意,该实现将负责通过vector 的dtor 调用适当的基于malloc_allocator 的取消分配函数。
    【解决方案2】:

    c++ 中的内存不足处理程序是通过set_new_handler 定义的,它可能在<new> 标头中,但我不确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2011-02-27
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 2013-02-24
      相关资源
      最近更新 更多