在我的應用程序中,我將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);
}
上述代碼是否清除(釋放)鍵指針的內存?
爲什麼會這樣呢? –
因爲雖然我得到這個錯誤*** glibc檢測*** /應用程序/代碼/功能鋰/ CppMap:免費():無效指針:0x00007fffffffdbb8 *** – Chandu
使用指針作爲關鍵是可疑的,爲什麼不簡單' std :: map'? –
Jarod42