如何在 C++ 中查找向量的第 m 和第 n 个元素之间的 max 元素
how to find the max element between the m-th and the n-th element of a vector in C++?
似乎向量max_element函数可以用于此目的,但我不确定如何使用它。
ForwardIterator max_element (ForwardIterator first, ForwardIterator last);
前向迭代器的类型是什么?如何指定它从第 m 个元素开始搜索?我如何找到最大元素的索引?谢谢。
使用以下命令:
std::max_element(vec.begin() + m, vec.begin() + n);
假设m < n
和n <= vec.size()
,其中vec
是一个std::vector
对象。
这将向指定范围内的 max-value 元素返回一个迭代器,以获取相应的索引使用it - vec.begin()
其中 it
是 max-element 迭代器。
此签名告诉您,std::max_element
是一个模板,只要它满足前向迭代器要求,它就接受任何类型的参数,并且返回相同的类型。您只需传入迭代器,它将迭代器返回到该范围中找到的最大元素。您可以取消引用它以获取值本身。因此
const auto max_iterator = std::max_element(v.begin() + m, v.begin() + n);
const auto max_value = *i;
必须注意避免m
大于或等于n
的情况。
相关文章:
- 如何从给定字符串中删除第二次和第三次出现的$
- 如何在不C++排序的情况下找到给定向量中的第一、第二和第三高值?
- 数组中所有元素的最新最小元素的第五个位置
- 需要帮助编写一个小程序来将循环乘以 n 个元素和 k 个多重性
- 首先处理第二个和第三个堆与第一个和第二个堆之间的逻辑差异
- 读取数组的第一个元素还是第 4000 个元素更快?
- 如何读取文本文件的第二、第三和第四行.C++
- 我有一系列阵列.可以从一个数组中阅读一些元素和另一个数组中的其他元素
- 在查找子集中元素和元素数量之间的二进制比较背后的逻辑是什么?
- 具有不同类型的元素和使用类的 2D 数组
- 对条件表达式结果的赋值(其中第二个和第三个操作数是相同类型和值类别的变量)是否仍然存在?
- 如何在不知道大小的情况下编写过程来修改动态数组的元素和大小
- 在C++标准中,当我同时使用 list.begin() 作为 list.splice() 的第一个和第三个参数时,为什么会发生无限循环
- 以线性最小二乘方式求解系统 Ax=b,具有复元素和下三角形平方 A 矩阵
- std::查找多个元素和逻辑运算符
- 运行时间错误:程序跳过提示,以获取第二名和第三个名称
- 2D阵列访问元素和地址
- 如何使用go文件的第m行和第n个字符
- 模板参数包访问第 N 个类型和第 N 个元素
- 如何在 C++ 中查找向量的第 m 和第 n 个元素之间的 max 元素