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函數做到這一點,但我必須提供位置或迭代器。如何刪除一個元素的形式列表使用C++中的指針指向這個元素
請給我一些想法如何使用指針擦除此元素,而不是通過列表。
是否有任何理由要使用指針而不是迭代器?上面的代碼示例絕對不需要它。 – Giel 2012-07-22 19:50:38
我第二個Giel的問題:爲什麼你不能通過'valitr'來擦除()'? – Turix 2012-07-22 19:56:22