我有两个multimaps定义如此multimap phoneNums;和multimap numPhones;他们是某种电话注册表 - phoneNums包含密钥名称,第二个参数phonenumber,numPhones包含密钥电话号码,第二个是名称。我想从两者中优化擦除当我想删除字符串键形式phoneNums,这也是numPhones中的第二个元素。当我输入所以其实是相同的,但与第一交换和第二 当我把它在测试中,它在两个屈德宁输入的数据它说,擦除速度太慢 - N * N,并且必须是n只有如何优化从multimap擦除
cin>>stringToErase;
phoneNums.erase(stringToErase);
multimap<string, string>::iterator it;
multimap<string, string>::iterator tmpr;
for(it = numPhones.begin(); it != numPhones.end();it++)
{
if(it->second == tringToErase)
{
tmpr = it;
numPhones.erase(it,tmpr);
}
}
您是否要求我们给您作业或面试问题的答案? – Omnifarious 2010-03-29 06:20:18