1. 求最大值
const T &qMax(const T &a, const T &b)
举例:
????float value1 = 20;
????float value2 = 30;
????float result = qMax(value1, value2);
qDebug() << "Result:" << result;
结果:Result: 30
2. 求最小值
const T &qMin(const T &a, const T &b)
举例:
????int value1 = 20; ?
????int value2 = 30; ?
????int result = qMin(value1, value2); ?
qDebug() << "Result:" << result;
结果:Result: 20
3. 求三值的中间值
const T &qBound(const T &v1,
????????????????const T &v2,
????????????????const T &v3)
这里的参数是:
v1(最小值):返回的值的下限。
v2(值):你想要检查或限制的值。
v3(最大值):返回的值的上限。
函数返回一个类型为 T 的值,如果 v2 小于 v1,则返回 v1;如果 v2 大于 v3,则返回 v3。否则,返回 v2。
这个函数在处理用户输入或不确定的数据时特别有用,因为它可以确保结果值始终在预期的范围内。
举例:
????int minVal = 10;
????int val = 20;
????int maxVal = 30;
????int result = qBound(minVal, val, maxVal);
????qDebug() << "Result:" << result;
结果:Result: 20
4.求列表容器的最值
利用C++标准库接口
#include<algorithm>
template<class ForwardIt, class Compare>
ForwardIt std::min_element(ForwardIt first,
???????????????????????????ForwardIt last,
???????????????????????????Compare comp)
???????????????????????????
ForwardIt std::max_element(ForwardIt first,
???????????????????????????ForwardIt last,
???????????????????????????Compare comp)
示例:
QStringList list{"7", "3", "2"};
QString maxValue = *std::max_element(list.begin(), list.end());
QString minValue = *std::min_element(list.begin(), list.end());
qDebug() << "Result:" << maxValue<<minValue;
结果:Result: "7" "2"
特别地基于迭代器的容器都可以使用该方法。
5. 数组求最值
int array[] = {1, 5, 4, 3, 2, 0};
int maxValue = *std::max_element(array, array + sizeof(array)/sizeof(array[0])); ?
int minValue = *std::min_element(array, array + sizeof(array)/sizeof(array[0]));
qDebug() << "Result:" << maxValue<<minValue;
结果:Result: 5 0