1
如何在C++ 矢量删除节点删除节点此代码甚至不编译如何从一个向量在C++
typedef vector<simple_node> container;
//======================================
// remove an item from the queue that matches what we arelady have
container parser::removeFromQueue(container local_container, simple_node *node_to_remove)
{
for (auto i = local_container.begin(); i != local_container.end(); i++)
{
if ((i->toy == node_to_remove->toy) &&
(i->type == node_to_remove->type))
{
local_container.erase(remove(local_container.begin(), local_container.end(), i), local_container.end());
break;
}
}
return local_container;
}
它未能就行了
local_container.erase(remove(local_container.begin(), local_container.end(), i), local_container.end());
编译器抱怨查询分配。
复制整个容器到函数和背出再次将是相当低效的相比于使用通按引用(即返回'void'和接受'容器&local_container'作为参数 –