【发布时间】:2019-04-26 22:26:19
【问题描述】:
说我有
vector<shared_ptr<string>> enemy;
如何从敌人向量中移除元素?
提前感谢您的帮助
**编辑(上下文中的代码)
void RemoveEnemy( vector<shared_ptr<Enemy>> & chart, string id )
{
int i = 0;
bool found = FALSE;
for(auto it = chart.begin(); it != chart.end(); i++)
{
if(id == chart[i]->GetEnemyID() )
{
found = TRUE;
chart.erase(it);
}
}
上面的代码让我出错
【问题讨论】:
-
与您从任何其他
vector中删除它们的方式相同吗?你有什么问题? -
是的,很有可能。有几种方法可以做到这一点,具体取决于您可能要删除的内容。您要根据共享字符串的地址或值删除
shared_ptrs吗? -
这里是
remove_if,您可能希望将其与 lambda 一起使用。请参阅擦除/删除习语的示例:en.cppreference.com/w/cpp/algorithm/remove
标签: c++ vector shared-ptr