【发布时间】:2020-02-26 19:12:03
【问题描述】:
我是一名新手程序员,试图习惯使用向量。在下面的代码中,我能够找到向量“V”的最大值并将其返回给 main。相反,我需要从对应于最大值索引的另一个向量返回值。在这种情况下,向量“V”的最大值是 65.25,我希望函数从向量“freq”(相同的索引)返回 0.05。这些值来自先前使用矩阵的计算,使用 push_back 方法将结果添加到向量中,我只需要提取 0.05 以进行进一步操作。非常感谢您的帮助。
#include <iostream>
#include <vector>
#include <cmath>
#include <cfloat>
using namespace std;
double maxAt(vector<double> &Lvec); // MaxL value func prototype
int main() {
vector <double> freq = {0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07};
vector <double> V ={0, 0, 0, 0, 65.25, 0,6};
double MaxV = maxAt(V);
cout << MaxV << endl;
return 0;
}
double maxAt(vector<double> &V) {
double Lmax = DBL_MIN;
for (auto val : V) {
if (Lmax < val) Lmax = val;
}
return Lmax;
}
【问题讨论】:
-
考虑创建一个结构,将最大值和与之相关的计算值绑定到一个对象中,然后拥有该结构的单个
vector。当您找到最大值时,您也找到了匹配的计算值。