void Pool::removeItem(TableComponent *t) { for(vector<TableComponent*>::iterator iter = items.begin(); iter != items.end();) { if (t->getId() == (*iter)->getId()) { iter = items.erase(iter); } else ++iter; } } 上面是vector删除的正确操作。