gpt4 book ai didi

c++ - 如何获得 vector 中的最大值或最小值?

转载 作者:IT老高 更新时间:2023-10-28 11:55:58 27 4
gpt4 key购买 nike

如何在 C++ 中获取 vector 中的最大值或最小值?

我假设它与数组或多或少相同,我错了吗?

我需要一个迭代器,对吧?我用 max_element 尝试过,但一直出错。

vector<int>::const_iterator it;
it = max_element(cloud.begin(), cloud.end());
error: request for member ‘begin’ in ‘cloud’, which is of non-class type ‘int [10]’

最佳答案

使用 C++11/C++0x 编译标志,可以

auto it = max_element(std::begin(cloud), std::end(cloud)); // C++11

否则,请自己编写:

template <typename T, size_t N> const T* mybegin(const T (&a)[N]) { return a; }
template <typename T, size_t N> const T* myend (const T (&a)[N]) { return a+N; }

http://ideone.com/aDkhW 观看直播:

#include <iostream>
#include <algorithm>

template <typename T, size_t N> const T* mybegin(const T (&a)[N]) { return a; }
template <typename T, size_t N> const T* myend (const T (&a)[N]) { return a+N; }

int main()
{
const int cloud[] = { 1,2,3,4,-7,999,5,6 };

std::cout << *std::max_element(mybegin(cloud), myend(cloud)) << '\n';
std::cout << *std::min_element(mybegin(cloud), myend(cloud)) << '\n';
}

哦,还有使用std::minmax_element(...) 如果您同时需要两者:/

关于c++ - 如何获得 vector 中的最大值或最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9874802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com