我想使用STL容器(加号std::basic_string)临时存储内存中的密钥或密码,我想在完成后将内存归零.
我最初计划使用在自定义分配器上参数化的STL容器,该分配器将内存归零allocator::deallocate,但我假设容器允许使用不来自指定分配器的内存.例如,a std::vector或a std::string包含用于小分配的固定大小的数组成员似乎是合理的.
我是否正确地关注,我应该(叹气)写自己的容器吗?
我会使用std::vector自定义分配器来执行零操作.根据5月的答案std :: vector使用小缓冲区优化?,它不能使用小缓冲区优化,因此,使用自定义分配器,您应该是安全的.
如果你更进一步,并使用该分配器来分配向量,然后使用智能指针确保它正确释放(或手动执行),甚至向量的内部内容(如大小)将是歼灭.