C++,一种检查3个数组的简单方法

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)

  • 写`std :: max`以避免任何冲突.这是_why_我们有名称空间; 让我们使用它们. (3认同)