C++建议使用圆括号将赋值用作真值 [英] C++ suggest parentheses around assignment used as truth value

查看:0
本文介绍了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;

也许有人能帮我。

推荐答案

我真的不知道该怎么办。

这取决于您打算做什么。

如果您不打算赋值,而是比较相等,则应该修复代码以使用相等运算符:==

如果您确实打算赋值,则可以:a)忽略警告或b)添加圆括号,告诉编译器您确实打算进行赋值,这不是一个错误。或如Christian Hackl c)将赋值和比较拆分为两个语句以提高可读性。

您的代码中还有另一个错误。擦除会将其余元素移位到左侧。下一个元素不再位于i++,因此您在擦除之后将跳过元素。如果擦除一个以上的元素,这也是低效的。有关更好的方法,请参阅erase-remove idiom

这篇关于C++建议使用圆括号将赋值用作真值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆