typedef struct value
{
char* contents;
int size;
}Value;
hash_map<Key,list<Value>,hash<Key>,eqKey> dspace;
hash_map<Key, list<Value>, hash<Key>, eqKey>::iterator itr;
list<Value> vallist;
list<Value>::iterator valitr;
Value * ptr;
itr=dspace.find(searchKey);
valitr=(itr->second).begin();
valitr++;
ptr=&*valitr;
ここで、ptr ポインターは、valitr イテレーターが指す要素のアドレスを指しています。このポインターを使用して、リストからこの要素を消去します。list.erase 関数がこれを行うことがわかりましたが、位置または iterator を提供する必要があります。
list を調べるのではなく、 pointer を使用してこの要素を消去する方法を教えてください。