c ++ std map的擦除函数是否释放了指针键的内存?

时间:2017-02-14 09:39:21

标签: c++ c++11 stdmap

在我的应用程序中,我使用带有 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);
}

上面的代码是否清除(释放)键指针的内存?

2 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

  

上面的代码是否清除(释放)键指针的内存?

没有

您应该使用字符串类(例如std::string)作为键类型,而不是原始字符指针:事实上,使用字符串 class 保证自动内存管理(包括内存清理)的字符串键。