c++ - 清零 STL 容器使用的内存

标签 c++

我想使用 STL 容器(加上 std::basic_string)在内存中临时存储 key 或密码,完成后我想将内存归零。

我最初计划使用在自定义分配器上参数化的 STL 容器,该分配器将 allocator::deallocate 中的内存清零,但我假设允许容器使用并非来自指定的分配器。例如,std::vectorstd::string 包含用于小分配的固定大小数组成员似乎是合理的。

我的担心是否正确,我是否应该(叹息)编写自己的容器?

最佳答案

我会将 std::vector 与自定义分配器一起使用,该分配器执行归零操作。根据May std::vector make use of small buffer optimization?的回答,它不能使用小缓冲区优化,因此,使用自定义分配器,你应该是安全的。

如果你更进一步,使用那个分配器来分配 vector ,然后使用智能指针来确保它被正确释放(或者手动完成),甚至 vector 的内部内容(比如大小) 将被消灭。

关于c++ - 清零 STL 容器使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872965/

相关文章:

c++ - main() 是用户定义的函数吗?

c++ - ListView 中的 Syslink

c++ - 带成员函数的 std::is_nothrot_invocable

C++类构造函数和istream运算符>>

c++ - Clang 错误地删除死代码

c++ - 无法在动态链接库中找到过程入口点 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev

c++ - 关于 Armadillo 稀疏矩阵中的内存分配

c++ - 由在 DTor 之前删除的静态对象创建的线程?

c++ - 试图理解 C++ 中的哈希表代码

c++ - Visual Studio 2019 C++-编译时错误地报告错误