C++ – 获取std::vector中的最小值、最大值以及对应的索引
1 获取std::vector中的最小值、最大值以及对应的索引
1.1 普通方法
普通方法就是遍历std::vector,对vector中的值进行一一对比,找出最小值、最大值及其对应的索引,示例代码如下
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<float> example_vector = {1.3,0.5,3.2,4.5,6.5,8.9,6.2,10.7,2.3};
// 找出最小值以及最小值索引
float min_value = std::numeric_limits<float>::max();
int min_value_index = -1;
for (int i = 0; i < example_vector.size(); ++i)
{
if (example_vector[i] < min_value)
{
min_value = example_vector[i];
min_value_index = i;
}
}
std::cout << "min_value_index = " << min_value_index << ", min_value = " << min_value << std::endl;
// 找出最大值以及最大值索引
float max_value = std::numeric_limits<float>::min();
int max_value_index = -1;
for (int i = 0; i < example_vector.size(); ++i)
{
if (example_vector[i] > max_value)
{
max_value = example_vector[i];
max_value_index = i;
}
}
std::cout << "max_value_index = " << max_value_index << ", max_value = " << max_value << std::endl;
return 0;
}
程序输出:
min_value_index = 1, min_value = 0.5
max_value_index = 7, max_value = 10.7
1.2 使用algorithm
我们可以使用algorithm
中的std::min_element
和std::max_element
的方法获取最大值最小值,然后使用std::distance
获取迭代器对应的在std::vector
中的索引,示例代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<float> example_vector = {1.3,0.5,3.2,4.5,6.5,8.9,6.2,10.7,2.3};
// 找出最小值
std::vector<float>::iterator smallest = std::min_element(example_vector.begin(), example_vector.end());
float min_value = *smallest;
// 获取最小值索引
int min_value_index = std::distance(example_vector.begin(), smallest);
std::cout << "min_value_index = " << min_value_index <<", min_value = "<< min_value << std::endl;
// 找出最大值
std::vector<float>::iterator biggest = std::max_element(example_vector.begin(), example_vector.end());
float max_value = *biggest;
// 获取最大值索引
int max_value_index = std::distance(example_vector.begin(), biggest);
std::cout << "max_value_index = " << max_value_index << ", max_value = " << max_value << std::endl;
return 0;
}
程序输出:
min_value_index = 1, min_value = 0.5
max_value_index = 7, max_value = 10.7
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 获取std::vector中的最小值、最大值以及对应的索引
原文链接:https://www.stubbornhuang.com/2561/
发布于:2023年03月23日 15:51:06
修改于:2023年06月21日 16:53:07
当前分类随机文章推荐
- C++11 - 父类与子类相互包含的时候该如何正确的使用智能指针,防止循环引用 阅读2802次,点赞0次
- C++STL容器 - std::map容器修改、元素操作总结 clear,insert,emplace,erase,swap,merge,extract,insert_or_assign等 阅读2227次,点赞0次
- C++ - 智能指针的正确使用方式 阅读822次,点赞0次
- C++11 - 解析并获取可变参数模板中的所有参数 阅读1618次,点赞0次
- 计算几何 - C++计算两个二维向量的夹角 阅读5310次,点赞3次
- C++ - const修饰符与指针 阅读597次,点赞1次
- CMake - 指定gcc、g++编译器 阅读74次,点赞0次
- C++ - 求解std::vector
中topk数值以及topk数值对应的索引 阅读3284次,点赞0次 - C++ - std::string替换字符串中所有指定的子字符串 阅读4126次,点赞1次
- C++ - Windows/Linux跨平台gbk与utf8字符集编码转换 阅读496次,点赞0次
全站随机文章推荐
- Pytorch - nn.Transformer、nn.TransformerEncoderLayer、nn.TransformerEncoder、nn.TransformerDecoder、nn.TransformerDecoder参数详解 阅读4478次,点赞2次
- 资源分享 - Geometric and Discrete Path Planning for Interactive Virtual Worlds 英文高清PDF下载 阅读1122次,点赞0次
- 资源分享 - Artificial Intelligence for Games , Third Edition 英文高清PDF下载 阅读1065次,点赞0次
- C++11 - 基于无锁队列的单生产者单消费者模型 阅读6711次,点赞1次
- 资源分享 - C++程序设计语言(第4部分 标准库),原书第4版 高清PDF下载 阅读3402次,点赞2次
- 资源下载 - Go语言实战WilliamKennedy高清带书签PDF下载 阅读2983次,点赞0次
- UnrealEngine4 - C++层打印信息到屏幕 阅读2835次,点赞0次
- Pac - 自定义Pac的编写和语法规则 阅读6538次,点赞0次
- C++ - 动态链接库dll为什么要使用unsigned char作为byte的内部格式 阅读994次,点赞0次
- 资源分享 - 统计学习方法(李航著) 高清PDF下载 阅读5637次,点赞3次
评论
169