比较if语句中的数组值和int值

Compare an array value to an int value within an if statement

本文关键字:int 数组 if 语句 比较      更新时间:2023-10-16

我在编写一个条件if语句时遇到了问题,该语句将数组的一个条目与initger值进行比较

void test_part3(triangleWcolor ArrayIn[], triangleWcolor ArrayOut[], triangleWcolor perimiter[], triangleWcolor max_val[], int arraysize)
{   
for(int i=0; i<arraysize; i++)
{
triangleWcolor perimiter[arraysize];
ArrayIn[i].inputRandomValues();
cout << "Input Array" << endl;
ArrayIn[i].printInfo();
ArrayIn[i].getPerimiter();
perimiter[i]=ArrayIn[i].getPerimiter();
}
for(int i=0; i< arraysize; i++)
{
if(perimiter[i]<75 && perimiter[i]>25]
{
cout << "Output Array Values" << endl;
ArrayOut[i] = ArrayIn[i];
ArrayOut[i].printInfo();
}
}
}

printInfo((;inputRnadomValues((;和getPerimiter((;函数都位于头文件中的结构"triangleWcolor"中。我已经通过调试验证了这些都能为我提供所需的输出。当我尝试运行这段代码时,我得到消息:[Error]不匹配'operator<'(操作数类型为"triangleWcolor"answers"int"(

既然如此,我想知道是否有人对我应该如何进行有任何建议?

谢谢。

错误很明显,您正在将对象triangleWcolor与int:进行比较

'operator<' (operand types are 'triangleWcolor' and 'int')

如果triangleWcolor是一个枚举,您可以尝试对其进行static_cast,但您应该确保这仍然有意义(枚举值是连续的(

如果不转换结构,就无法将其与int进行比较。

如果你不想转换它,那么我建议在你的结构中创建一个int,并将这两个int进行比较。