【发布时间】:2015-04-02 06:10:21
【问题描述】:
我试图找出 max 或 min 函数如何在 STL 中的 c++ 中工作的内置机制,以查找元素数组中的最大或最小元素。
【问题讨论】:
我试图找出 max 或 min 函数如何在 STL 中的 c++ 中工作的内置机制,以查找元素数组中的最大或最小元素。
【问题讨论】:
在 STL 中,它分别是 min_element 和 max_element,它接受 Iterator 作为参数类型而不是集合本身。它不被称为min 和max 以防止与CRT min 和max 函数/宏的名称冲突。
这里有详细的记录:http://www.cplusplus.com/reference/algorithm/min_element/
请注意,Iterator 是多种类型的替代品,包括原始指针。
例子:
int myints[] = {3,7,2,5,6,4,9};
std::cout << "The smallest element is " << *std::min_element( myints, myints+7 ) << '\n';
【讨论】:
min或max,因为STL已经有函数min和max,它们取两个值的最小值/最大值。如果您调用min(iterator, iterator),它将尝试找到两个迭代器中较小的那个。正如@Dai 所说,对于一个序列,使用min_element 或max_element,它们会返回一个指向所需元素的迭代器(因此在他的代码中使用*)