RnD*_*RnD 2 c++ arrays if-statement max
我有3个数组,
int fJump [13],sJump [13],tJump [13];
他们每个人都有跳跃记录.我需要检查其中一个是否大于max,以获得最大价值.
所以我可以这样做:
for(int i=0;i<n;i++){
if(max<fJump[i]){
max = fJump[i];
}
if(max<sJump[i]){
max = sJump[i];
}
if(max<tJump[i]){
max = tJump[i];
}
}
Run Code Online (Sandbox Code Playgroud)
但有时还会有很多,所以写这样的话很头疼.那会有更好,更快的解决方案吗?
das*_*ght 11
您可以使用max_element标准库中的函数而不是编写自己的循环:
int max = *std::max_element(fJump, fJump+13);
max = std::max(max, *std::max_element(sJump, sJump+13));
max = std::max(max, *std::max_element(tJump, tJump+13));
Run Code Online (Sandbox Code Playgroud)
您也可以max在循环中使用该函数:
for(int i=0;i<n;i++){
max = std::max(max, fJump[i]);
max = std::max(max, sJump[i]);
max = std::max(max, tJump[i]);
}
Run Code Online (Sandbox Code Playgroud)