//麻烦大家看看,这个报错怎么改
[Error] no matching function for call to 'GreaterFive::GreaterFive(int&)'
#include<iostream>
using namespace std;
const int L = 10;
#include<vector>
#include<algorithm>
class MyPrint
{
public:
void operator()(int value)
{
cout << value << " ";
}
};
class MyCompare
{
public:
bool operator()(int value1,int value2)
{
return value1 > value2;
}
};
class GreaterFive
{
public:
bool operator()(int value)
{
return value >5;
}
};
void greaterFive(vector<int>v)
{
int i=0;
int indexs[L];
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
int ret = GreaterFive(*it);
if (ret==1)
{
indexs[i] = std::distance(v.begin(), it);
i++;
}
}
cout << "结果如下" << endl;
for (int i = 0; i < sizeof(indexs) / 4; i++)
{
cout << indexs[i] << " ";
}
cout << endl;
}
int main()
{
vector<int>v;
for (int i = 0; i < 5; i++)
{
int x = rand() % 100 + 1;
v.push_back(x);
}
cout << "排序前" << endl;
for_each(v.begin(), v.end(), MyPrint()); cout << endl;
cout << "升序排序后" << endl;
sort(v.begin(), v.end());
for_each(v.begin(), v.end(), MyPrint()); cout << endl;
cout << "降序排序后" << endl;
sort(v.begin(), v.end(), MyCompare());
for_each(v.begin(), v.end(), MyPrint()); cout << endl;
greaterFive(v);
}
GreaterFive没有这个函数 你这只有一个同名的类
void Tree::Del(TNode* bt) {
if (bt == NULL) return;
else {
Del(bt->Left);
Del(bt->Right);
delete bt;
}
}
要实现一个C++函数来实现谓词,在一个数组中找到所有大于5的数,可以按照以下步骤进行:
cpp bool greaterThanFive(int arr[], int length) { // 程序逻辑 }
cpp bool greaterThanFive(int arr[], int length) { for (int i = 0; i < length; i++) { if (arr[i] > 5) { // 处理大于5的元素 } } }
```cpp bool greaterThanFive(int arr[], int length) { for (int i = 0; i < length; i++) { if (arr[i] > 5) { // 打印大于5的元素 cout << arr[i] << " ";
// 存储大于5的元素到新的数组
// new_arr[index++] = arr[i];
}
}
} ```
```cpp bool greaterThanFive(int arr[], int length) { for (int i = 0; i < length; i++) { if (arr[i] > 5) { cout << arr[i] << " "; } }
return true; // 或者根据实际需求返回其他值
} ```
注意:以上代码只是描述了找到大于5的元素,具体的处理方式根据实际需求进行修改。如果你有其他具体的需求,请提供更多的信息,以便提供更精确的解决方案。