Qt技巧-快速求最值

利用求最值接口提高编程效率。

1. 求最大值

1
const T &qMax(const T &a, const T &b)

2. 求最小值

1
const T &qMin(const T &a, const T &b)

3. 求三值的中间值

1
2
3
const T &qBound(const T &v1, 
const T &v2,
const T &v3)

4. 求列表容器的最值

  • 利用C++标准库接口

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #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)
  • 示例

    1
    2
    3
    QStringList list{"1", "3", "2"};
    QString maxValue = *std::max_element(list.begin(), list.end());
    QString minValue = *std::min_element(list.begin(), list.end());
  • 特别地基于迭代器的容器都可以使用该方法。

5. 数组求最值

1
2
3
4
5
6
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]));

6. 关于更多

  • Qt君公众号后台回复”Qt技巧“获取更多相关内容。