为什么我们对 max stl 函数使用指向整数的指针而不是 size_t 数据类型(通常使用)用于 c++ 中的字符数组?

Why we use pointer to integer for max stl function instead for size_t data type(which is generally use) for array of characters in c++?

我正在处理一个问题,需要找到最大字符(按字母顺序或者我们可以根据 ASCII 值说),发现 size_t 数据类型不能用于从 max 函数返回相反,我在算法头文件中定义了指向该整数的指针。

下面是我有疑问的一段代码:

int v[] = { 'a', 'c', 'k', 'd', 'e', 'f', 'h' };

int* i1; 

i1 = std::max_element(v, v + 4); 

谁能解释一下为什么?提前致谢:-)

因为std::max_element不仅仅是数组的函数。它是一个适用于任何迭代器的函数。并且索引仅对随机访问容器有意义,因此使用索引作为 return 值将不必要地限制算法的接口。