vector求最大值下标
时间: 2024-08-03 22:01:14 浏览: 140
在C++标准库中,`std::vector`本身并没有提供直接获取元素最大值及其下标的函数。但是,你可以通过自定义算法或者迭代器来实现这个功能。下面是一个简单的示例:
```cpp
#include <vector>
#include <algorithm>
int max_index(std::vector<int> &v) {
if (v.empty()) {
throw std::runtime_error("Vector is empty");
}
int max_val = v;
int max_idx = 0;
for (size_t i = 1; i < v.size(); ++i) {
if (v[i] > max_val) {
max_val = v[i];
max_idx = i;
}
}
return max_idx;
}
// 使用示例
int main() {
std::vector<int> vec = {5, 3, 9, 1, 7};
size_t max_idx = max_index(vec);
std::cout << "The index of the maximum value is: " << max_idx << std::endl;
return 0;
}
```
在这个例子中,我们遍历整个向量,如果发现当前元素比之前的最大值还大,就更新最大值和对应的索引。最后返回的就是最大值的索引。
阅读全文