因此,我尝试在课堂上创建一个冒泡排序算法,但遇到了这个问题,当我尝试查找表示“表达式必须具有一个班级类型”,对于我的一生,我不知道该怎么做。我正在使用的教程没有帮助,而且找不到其他遇到相同问题的人。
如果有人得到了我的要求,我将不胜感激,并且由于我仍然很新并且想了解,因此也将不胜感激,因此我可以尝试学习 这些都是在VS 2017(免费版)上完成的
#include "pch.h"
#include <iostream>
using std::cout;
using std::endl;
int main()
{
bool found = true;
int target{ 0 };
int temp{};
bool ordered{ false };
int list[10] = { 4,6,5,1,3,2,10,8,9,7 };
cout << list.length() << endl;
bool swapped{ false };
while (ordered = false)
{
target = 0;
while (target != list.length)
{
if (list[target] > list[target + 1])
{
swapped == true;
list[target] = temp;
list[target] = list[target + 1];
list[target + 1] = temp;
target = target + 1;
}
else
{
target = target + 1;
}
}
if (swapped == false)
{
ordered = true;
}
}
cout << list << endl;
getchar();
return 0;
}
答案 0 :(得分:1)
您提到的错误(“表达式必须具有类类型”)是由以下语句和其他类似语句引起的:
cout << list.length() << endl;
list
是此语句int list[10];
因此,您不能在其上使用.
。您只能在结构或类或联合上使用.
运算符。即使list
是一个类/结构,也应在其中定义length()
方法以使上述方法起作用。
您应该使用sizeof
运算符。您可以将其存储在变量中,以后再使用。
size_t length = sizeof list/sizeof list[0];
cout << length << endl;