sar*_*aya 1 c++ arrays recursion max dynamic-arrays
例如:
array[] = {3, 9, 10, **12**,1,4,**7**,2,**6**,***5***}
Run Code Online (Sandbox Code Playgroud)
首先,我需要最大值= 12然后我需要数组的其余部分(1,4,7,2,6,5)中的最大值,所以值= 7,然后是数组6的其余部分的最大值,然后是5,在那之后,我将需要一系列这个值.这回馈(12,7,6,5).
如何获得这些数字?我尝试了下面的代码,但它似乎无限,我想我需要一个递归函数,但我怎么能这样做?
max=0; max2=0;...
for(i=0; i<array_length; i++){
if (matrix[i] >= max)
max=matrix[i];
else {
for (j=i; j<array_length; j++){
if (matrix[j] >= max2)
max2=matrix[j];
else{
...
...for if else for if else
...??
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是通过使用std::max_element()标准算法在C++ 11中执行此操作的方法:
#include <vector>
#include <algorithm>
#include <iostream>
int main()
{
int arr[] = {3,5,4,12,1,4,7,2,6,5};
auto m = std::begin(arr);
while (m != std::end(arr))
{
m = std::max_element(m, std::end(arr));
std::cout << *(m++) << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个实例.