私はマップからキーと値のペアを削除したいのですが、私の問題は私がキーではなく値を持っていることです。 「値」を使用してキーと値のペアをマップから削除するにはどうすればよいですか。 そして、私が持っている価値は地図でユニークです。値を使って地図からキーと値のペアを削除する
私のコードスニペット:
int Clientqueues::addClient(string ipaddress, string sessionid)
{
clientsWithNoLogin.insert(pair<string,string>(ipaddress,sessionid));
return 0;
}
void Clientqueues::deleteClient(string sessionid)
{
map<string, string>::iterator i,current;
for(i = clientsWithNoLogin.begin() ;i!= clientsWithNoLogin.end();)
{
current = i;
++i;
if((current->second) == sessionid) clientsWithNoLogin.erase(current);
}
return ;
}
これは、キーと値のペアを削除します?
頻繁に必要な場合は、Boost.Bimapの使用を検討する必要があります。 –