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 函数可以做到这一点,但我必须提供 position 或 iterator 。
请告诉我如何使用指针而不是遍历列表来擦除这个元素。