矢量的最大值

Maximum value of a vector

本文关键字:最大值      更新时间:2023-10-16

我有一个双精度向量,我需要在其中获取最大值,然后将该值存储在整数变量中,以便我可以比较该值。到目前为止,我有这个:

vector<double>::iterator result;
result = max_element(zerocrossdata.begin(), zerocrossdata.end());

如何将值放在变量中?

std::max_element() 函数返回一个迭代器,指向向量中的最大元素。

因此,要获得实际的最大值,您只需取消引用返回的迭代器,如下所示:

double max_value = *result;

您需要使用 * 运算符尊重迭代器,正如其他人已经说过的那样:

int max_value = *result;

但是,请注意,此操作的结果将是双精度值,而不是 int。在几乎所有平台上,double 都将是一个 8 字节的浮点值。您的结果可能超出了 int(通常是有符号 4 字节整数)可以支持的值范围。这可能会导致意外行为,并且您可能会(或可能不会)收到有关它的编译器警告,具体取决于编译器和设置。