c++ - 为什么我们将指向整数的指针用于 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);
谁能解释我为什么?提前致谢 :-)
解决方案
因为 std::max_element 不仅是数组的函数。它是一个适用于任何迭代器的函数。并且索引仅对随机访问容器有意义,因此使用索引作为返回值将不必要地限制算法的接口。
推荐阅读
- serenity-bdd - 出于某种原因,我想在我的宁静剧本项目中使用 thread.sleep,我该如何使用它?
- c# - 是否可以在最后的子类属性中添加父类属性?
- python - Plot normal distribution over histogram
- mongodb - 从 mongodb 获取文档后,我想在其中添加一个数组,然后返回它
- javascript - Undefined variable but has the correct value
- android - How two remove same npm from react-native npm
- javascript - vue-bootstrap shows components content badly when page loads
- arrays - 每个阵列的 LIBGDX 碰撞检测
- c# - Is there a way to do LINQ to SQL with MySQL for .NET Application?
- angularjs - 停止 AngularJS 无模板请求