声明一个包含8个元素的整形数组,使用STL中的算法find进行数据的查找,应用排序算法sort,并配合使用标准函数对象Greater<T>对数据进行升序和降序排序
时间: 2024-02-17 13:02:44 浏览: 68
数据排序和查找——STL
好的,我会回答你的问题。根据你的要求,我可以提供以下代码示例:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional> // 包含Greater<T>头文件
using namespace std;
int main() {
int arr[] = {5, 2, 8, 1, 7, 4, 6, 3}; // 声明一个包含8个元素的整形数组
// 使用STL中的算法find进行数据的查找
int target = 7;
int* result = find(arr, arr + 8, target);
if (result != arr + 8) {
cout << "找到了目标元素:" << *result << endl;
} else {
cout << "没有找到目标元素" << endl;
}
// 应用排序算法sort,并配合使用标准函数对象Greater<T>对数据进行升序和降序排序
vector<int> vec(arr, arr + 8); // 将数组转化为vector
sort(vec.begin(), vec.end()); // 升序排序
cout << "升序排序结果:";
for (int i : vec) {
cout << i << " ";
}
cout << endl;
sort(vec.begin(), vec.end(), greater<int>()); // 降序排序
cout << "降序排序结果:";
for (int i : vec) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
这段代码首先声明了一个包含8个元素的整形数组,然后使用STL中的算法find进行查找指定元素。接下来,将数组转化为vector,并使用sort算法对vector进行升序排序和降序排序。在降序排序时,使用了标准函数对象greater<int>。最后,输出排序结果。
阅读全文