首页 > 解决方案 > 为什么我们将指向整数的指针用于 max stl 函数而不是 size_t 数据类型(通常使用)用于 c++ 中的字符数组?

问题描述

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

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

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

int* i1; 

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

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

标签: c++algorithmpointersstlsize-t

解决方案


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


推荐阅读