请问map里的元素如何安全地erase
我设计的方法老是会导致程序崩溃。全部是erase那里有问题。
我的程序结构
stuct MSG_PLAYER
{
DWORD dwPlayer;
char ID[20];
};
typedef map<DWORD,MSG_PLAYER>::value_type valtype;//声明一个别名
map<DWORD,MSG_PLAYER> playlist;//定义一个MAP对象
MSG_PLAYER p1;
playlist.insert(valtype(p1.dwPlayer,p1));//KEY为p1里的DWORD,VALUE为p1
清除时(以下两种方法都会令程序崩溃)
playlist.erase(p1.dwPlayer);
或
if(!playerlist.empty())
{
map<DWORD,MSG_PLAYER>::iterator iter;
iter=playlist.find(p1的DWORD);
playlist.erase(iter);
}
错误信息有时是set erase iterator outside range
有时是
Detected memory leaks!
Dumping objects ->
。。一堆内存泄漏。。
Object dump complete.