在编写将数组的一个条目与初始值进行比较的条件if语句时,我一直遇到麻烦
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”。我已经验证了这些通过调试可以提供所需的输出。当我尝试运行这段代码时,出现以下消息:[错误]'operator <'不匹配(操作数类型为'triangleWcolor'和'int')
用这种方式,我想知道是否有人对我应该如何进行有任何建议?
谢谢。
答案 0 :(得分:0)
将对象三角形Wcolor与int进行比较时,错误很明显:
'operator<' (operand types are 'triangleWcolor' and 'int')
如果triangleWcolor是一个枚举,则可以尝试在其上进行static_cast,但应确保此操作仍然有意义(枚举值是连续的)
答案 1 :(得分:0)
如果不转换结构,则无法将其与int进行比较。
如果您不想转换它,那么我建议在您的结构中创建一个int并将这两个int进行比较。