vector 中找到第三大的数和其索引
时间: 2024-11-24 16:41:17 浏览: 5
c++中stack、queue和vector的基本操作示例
在C++标准库中的`std::vector`容器中,要找出第三大的数及其索引,你需要先对向量进行排序,然后取出倒数第三个元素及其对应的索引。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {5, 9, 1, 7, 3, 8, 6}; // 假设这是你的vector
// 对vector进行降序排序
std::sort(vec.begin(), vec.end(), std::greater<int>());
if (vec.size() >= 3) {
int third_largest = vec[vec.size() - 3]; // 第三大的元素
size_t index = vec.find(third_largest); // 查找索引,注意这个索引是从0开始计数的
if (index != vec.end()) {
std::cout << "第三大的数是:" << third_largest << ", 索引是:" << index - vec.begin() << std::endl;
} else {
std::cout << "向量中不足三个不同值,无法找到第三大的数。" << std::endl;
}
} else {
std::cout << "向量长度小于3,无法找到第三大的数。" << std::endl;
}
return 0;
}
```
这段代码首先对向量进行降序排序,然后取最后一个、倒数第二个和倒数第三个元素作为第三大的数,查找它们在未排序前的位置。如果向量太小,就会提示无法找到第三大的数。
阅读全文