C++建议使用圆括号将赋值用作真值
我的这部分代码有一些问题:
Employees.cpp:
void Employees::delete_employee()
{
int employee_number;
cout<<"
..."<<endl<<endl;
cout<<"Give me the number:";
cin>>Employee_number;
for(std::vector<EmployeeStruct>::size_type i = 0; i != lista.size(); i++)
{
if (employee_number = lista[i].Employee_number)
{
lista.erase(lista.begin() + i);
}
}
cout<<"..."<<endl<<endl;
cout<<"--------------------------------"<<endl;
}
当我编译我的代码时,我看到一些类似的东西:警告:建议将用作真值的赋值括在圆括号中,但我真的不知道如何处理它。也许这不是一个严重的问题,但我的程序并不像我想的那样工作。(此代码应删除员工)
在main.cpp我有:
case 4:
{
Pracownicy p;
p.usun_pracownika();
}
break;
也许有人能帮我。
解决方案
我真的不知道该怎么办。
这取决于您打算做什么。
如果您不打算赋值,而是比较相等,则应该修复代码以使用相等运算符:==
您的代码中还有另一个错误。擦除会将其余元素移位到左侧。下一个元素不再位于i++
,因此您在擦除之后将跳过元素。如果擦除一个以上的元素,这也是低效的。有关更好的方法,请参阅erase-remove idiom。
相关文章