求数组中最大和次大 用c++实现
时间: 2024-02-24 12:54:28 浏览: 32
以下是使用 C++ 实现的代码:
```cpp
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
pair<int, int> findMaxTwo(vector<int>& nums) {
int maxNum = INT_MIN, secondMax = INT_MIN;
for (int num : nums) {
if (num > maxNum) {
secondMax = maxNum;
maxNum = num;
} else if (num > secondMax) {
secondMax = num;
}
}
return {maxNum, secondMax};
}
int main() {
vector<int> nums = {1, 5, 3, 9, 7, 2};
auto [maxNum, secondMax] = findMaxTwo(nums);
cout << "Max: " << maxNum << endl;
cout << "Second Max: " << secondMax << endl;
return 0;
}
```
在上面的代码中,`findMaxTwo` 函数的参数是一个整数向量 `nums`,返回一个 `pair` 对象,包含最大值和次大值。使用 `INT_MIN` 来初始化 `maxNum` 和 `secondMax` 变量,这样可以保证任何值都比它们大。使用 `auto [maxNum, secondMax]` 来定义并初始化 `maxNum` 和 `secondMax`,使用 `cout` 输出结果。