我有一个非常简单的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/