📅  最后修改于: 2023-12-03 15:29:52.579000             🧑  作者: Mango
在C++中,可以通过以下几种方法获取一组数据的最大值。
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
auto max_v = std::max_element(v.begin(), v.end());
std::cout << "max value is: " << *max_v << std::endl;
return 0;
}
这里使用了STL的std::max_element
函数,它返回指到最大元素的迭代器。
#include <iostream>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
int max_v = v[0];
for (auto i : v) {
if (i > max_v) {
max_v = i;
}
}
std::cout << "max value is: " << max_v << std::endl;
return 0;
}
这种方法即是遍历整个数组,逐个比较大小。
#include <iostream>
#include <vector>
int max_v(std::vector<int> v, int index, int max) {
if (index == v.size()) {
return max;
}
if (v[index] > max) {
max = v[index];
}
return max_v(v, index + 1, max);
}
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
int max = max_v(v, 0, 0);
std::cout << "max value is: " << max << std::endl;
return 0;
}
这里使用了递归来遍历整个数组,每次比较大小并返回最大值。
总结起来,使用algorithm库的方法最为方便和简洁,但是需要了解STL的使用,而循环和递归方法则较易理解。