矢量的最大值

时间:2012-11-13 15:35:28

标签: c++ vector

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

 vector<double>::iterator result;

result = max_element(zerocrossdata.begin(), zerocrossdata.end());

任何人都知道如何将值放在变量中?混淆!!

2 个答案:

答案 0 :(得分:9)

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

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

double max_value = *result;

答案 1 :(得分:3)

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

int max_value = *result;

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