在我的应用程序中,我正在使用 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内存管理(包括字符串键的内存清理)。