我有一个类向量,该类有一个字符串名称,以及其他私有字段。
我想实现一个void delete(string name)函数,它根据字符串查找元素(向量中的每个类都有一个唯一的名称)。
但是经过简单的测试,它给了我一个错误“不能增加到最后”。
这是我的功能:
void delete_member(string member_name)
{
int count = 0;
for (auto it = member_list.begin(); it != member_list.end(); ++it, ++count)
if (it->get_name() == member_name)
member_list.erase(member_list.begin() + count);
}
Run Code Online (Sandbox Code Playgroud)
就我搜索的答案而言,似乎迭代器不应该超过向量的 .end() 。
这里的缺陷是什么?我使用相同的循环来迭代 add_member(Member m) 函数的向量,该函数完全正常