在C++中,如何从向量中删除元素?
对于(1),我已经尝试了以下,但我不太确定它是否做了应该做的事情(删除传递给removeItem()的项目),它看起来不是很优雅:
vector<Item*> items;            
// fill vector with lots of pointers to item objects (...)
void removeItem(Item * item) {
    // release item from memory
    if (int i = getItemIdIfExists(item) != -1) {
        items.erase (items.begin()+i);
    }
}
int getItemIdIfExists(Item * item) {
    // Get id of passed-in Item in collection
    for (unsigned int i=0; i<items.size(); i++) {
        // if match found
        if (items[i] == item)     return i;  
    }
    // if no match found
    return -1;
}