我有一个非常简单的if循环,它接受一个名为data的数组(向量矢量),读取EACH行的第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开头的那个元素。 AKA,c ++似乎完全无视我的if语句。
有没有人对此有答案?
提前谢谢!
答案 0 :(得分:5)
您需要在==
条件中使用=
代替if
:
if(data[i][0] == pid)
否则您只是将pid
的值分配给数组元素,如果pid
不是0
,则为真。
答案 1 :(得分:1)
您正在使用赋值运算符=
而不是比较运算符==
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;
}
}