在我的应用程序中,我使用带有 char * 的c ++ std map作为键。下面是使用迭代器从映射中删除数据条目的代码示例。
// map declaration in the code
map<VcmU8T*, time_t, DataMapStrCmpT> mDataMap;
auto it = mDataMap.find(apKey);
if (it != mDataMap.end()) {
mDataMap.erase(it);
}
上面的代码是否清除(释放)键指针的内存?
答案 0 :(得分:6)
答案 1 :(得分:2)
上面的代码是否清除(释放)键指针的内存?
没有
您应该使用字符串类(例如std::string
)作为键类型,而不是原始字符指针:事实上,使用字符串 class 保证自动内存管理(包括内存清理)的字符串键。