不废话,先上代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> nums = { 45,3,12,16,5,9,4 };
int min_1 = INT16_MAX, min_2 = INT16_MAX;
for (int i = 0; i < nums.size(); i++)
{
//最小的数 如果最小数发生变动 次小也动
if (min_1 >= nums[i])
{
int temp = min_1;
min_1 = nums[i];
min_2 = temp;
}
else if (min_2 > nums[i]) //最小数不发生变化
{ //次小的数自己变化
min_2 = nums[i];
}
}
cout << "min_1:" << min_1 << " " << "min_2:" << min_2 << endl;
}
思路:
1.找到比min_1小的数时候,min_2 继承min_1的数
2.在min_1一直为最小的时候,加个else 作为判断数据是否为次小