我有一个双精度矢量,我需要获取其中的最大值,然后将值存储在整数变量中,以便我可以比较该值。到目前为止我有这个:
vector<double>::iterator result;
result = max_element(zerocrossdata.begin(), zerocrossdata.end());
任何人都知道如何将值放在变量中?混淆!!
答案 0 :(得分:9)
std::max_element()
函数返回指向向量中最大元素的迭代器。
因此,要获得实际的最大值,您只需要取消引用返回的迭代器,如下所示:
double max_value = *result;
答案 1 :(得分:3)
你需要使用*运算符来使用迭代器,正如其他人已经说过的那样:
int max_value = *result;
但是,请注意,此操作的结果将是 double ,而不是int。在几乎所有平台上,double都是8字节浮点值。您的结果可能超出值范围(int(通常是带符号的4字节整数)可以支持)。这可能会导致意外行为,您可能(或可能不会)收到编译器警告,具体取决于您的编译器和设置。