c++ - max 函数的奇怪行为

标签 c++ max

我有这个代码:

largestDeviation = max(max(max(angleBetweenVectors(robustNormal, normalAtA),
                               angleBetweenVectors(robustNormal, normalAtB)),
                           angleBetweenVectors(robustNormal, normalAtC)),
                       angleBetweenVectors(robustNormal, normalAtD)),
                       angleBetweenVectors(robustNormal, normalAtE);

方法:angleBetweenVectors 返回一个float

我看不到这段代码在做什么,也看不到它为什么要构建,括号没有正确匹配,我担心它会导致错误。我怎样才能获得对 angleBetweenVectors 的所有调用的最大值?

最佳答案

添加一些索引,你会得到:

largestDeviation = 
max(
   max(
      max(
         angleBetweenVectors(robustNormal, normalAtA),
         angleBetweenVectors(robustNormal, normalAtB)
      ),
      angleBetweenVectors(robustNormal, normalAtC)
   ),
   angleBetweenVectors(robustNormal, normalAtD)
), 
angleBetweenVectors(robustNormal, normalAtE);

即它将返回 angleBetweenVectors(robustNormal, normalAtE); 的值,因为您缺少 max

关于c++ - max 函数的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045259/

相关文章:

c++ - C/C++内存分配分块

c++ - 计算 3 维中的相机 LookAt 位置 (DirectX)

c++ - 将 std::string 中的十六进制值存储在 std::vector 中,反之亦然?

c++ - 在 CreateProcess 的路径中使用 SHGetKnownFolderPath 来运行程序

MySQL - 复杂的 COUNT 查询

javascript - 为什么我的函数在尝试从数组返回最大数字时返回未定义?

c++ - 如何将各种类型的函数指针存储在一起?

c++ - 遗留 C++ 中的最小值和最大值

在一系列重叠间隔中找到最大和的算法

c++ - QGridLayout 设置最大列宽