我有一个非常简单的for循环,它接收一个称为数据的数组( vector 的 vector ),读取每个行的第0个元素(即data [i] [0]元素),并输出特定于该元素的第5个元素行IFF满足第一个元素等于整数pid(用户在代码的前面定义的条件)的条件。如果行不是以该元素开头,则我希望它不输出任何内容。

这是此循环的代码:

for(int i = 0; i < data.size(); i++)  {
    if(data[i][0] = pid) {
        cout << data[i][5] << endl;
    }
}

但是,当我运行程序时,它输出每行的第5个元素,而不仅仅是以pid开头的元素。又名,c++似乎完全忽略了我的if语句。

有人对此有答案吗?

先感谢您!

最佳答案

您正在使用赋值运算符=而不是比较运算符==

if(data[i][0] = pid) {
             ^^^

对于我来说,我可以通过以下方式编写这些循环
for ( size_t i = 0; i < data.size(); i++ )
{
    if ( data[i][0] == pid && data[i].size() > 5 )
    {
        cout << data[i][5] << endl;
    }
}

关于c++ - 对于if循环无法正常工作的情况很简单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30671473/

10-11 22:36
查看更多