c++ - 如何将 AERT_Allocate 与 std:vector 一起使用
问题描述
我正在编写一个 Windows 音频处理对象 (APO) 驱动程序,目前std::vector<float>
为了方便管理音频缓冲而使用它。
我注意到 MS 要求我只能使用锁定的内存,并且为此提供了一个方便的实用程序:AERT_Allocate
我希望能够AERT_Allocate
与我的std::vector<float>
.
有人可以提供有关如何执行此操作的指导/代码片段,还是在这种情况下我必须恢复使用纯 C 数组或其他结构?
谢谢!
解决方案
std::vector
实际上根本不分配任何内存,因为它是由分配器完成的,可以在向量的构造时提供。Vector 只管理内存,由分配器分配。它默认使用std::allocator,但您可以使用AERT_Allocate
. 但是它必须满足分配器命名的要求,这意味着您必须为模板提供足够的接口才能使用。
例如,您可能想要放入AERT_Allocate
分配器的allocate()
成员函数,这是分配器的命名要求之一。
推荐阅读
- android - 从 Android 中的 Firebase 实时数据库中检索数据 - recyclerview
- list - 如何应用断言条件来更改列表?
- python - 如何从字符串而不是文档字符串运行 doctest 示例?为什么需要缩进?
- html - 为什么 iframe 不继承父级的样式?
- javascript - 如何在 socket.io 上获取 https
- azure - 如何在 Azure 数据工厂中获取管道文件夹路径?
- go - 在golang中获取数组的长度并将其存储在const中
- c# - 相机中的 UnassignedReferenceException
- android - 如何将屏幕分成两个区域,同时在中心有一个表格?
- sql - 将日期列添加到 SQL 中的临时表