コード例 #1
0
static bool erasekey(multiset<DPair>& set, const DPair& key )
{
  multiset<DPair>::iterator iter;

  //cout << "try to erase pair (" << key.a << ", " << key.b << ")" << endl;

  pair<multiset<DPair>::iterator, multiset<DPair>::iterator> ret;
  ret = set.equal_range(key);

  for (iter=ret.first; iter!=ret.second && !(*iter == key); ++iter);


  if (iter!=ret.second) // so the dpair is found
  {
        //cout << "erasing pair (" << iter->a << ", " << iter->b << ")" << endl;
    set.erase(iter);
    return true;
  }

  //cout << "           dpair not found!" << endl;
  return false;
}