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



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

上述代码是否清除(免费)关键指针的内存?

no。

它从容器中删除指定的元素。不再,也不再。

上述代码是否清除(免费)关键指针的内存?

no。

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

最新更新