声明一个整型数组,使用C++模版中(STL)中的查找算法find()进行数据的查找,然后应用排序算法sort,并配合使用标准函数对象Greater对数据进行升序或降序排序
时间: 2024-05-13 13:15:47 浏览: 80
下面是一个示例代码:
```c++
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
// 声明整型数组
int arr[] = {5, 2, 8, 4, 9, 1, 3, 7, 6};
// 计算数组长度
int len = sizeof(arr) / sizeof(int);
// 使用 find 查找元素
int target = 4;
int* result = std::find(arr, arr + len, target);
if (result != arr + len) {
std::cout << "Found " << target << " at index " << result - arr << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
// 使用 sort 进行升序排序
std::vector<int> vec(arr, arr + len);
std::sort(vec.begin(), vec.end(), std::greater<int>());
std::cout << "Descending order: ";
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
// 使用 sort 进行降序排序
std::sort(vec.begin(), vec.end());
std::cout << "Ascending order: ";
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
输出:
```
Found 4 at index 3
Descending order: 9 8 7 6 5 4 3 2 1
Ascending order: 1 2 3 4 5 6 7 8 9
```
首先使用 `std::find` 查找元素 4 的位置,如果找到了就输出对应的下标,否则输出未找到。
然后使用 `std::sort` 进行升序排序,并且传入标准函数对象 `std::greater<int>()`,这样就会按照降序排序。输出结果为降序排序的数组。
最后再使用 `std::sort` 进行升序排序即可。输出结果为升序排序的数组。
阅读全文