首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我如何初始化一个浮点数到它的最大/最小值?

我如何初始化一个浮点数到它的最大/最小值?
EN

Stack Overflow用户
提问于 2010-04-21 16:09:14
回答 5查看 174.6K关注 0票数 111

如何硬编码浮点数或双精度数的绝对最大值或最小值?我想通过简单地遍历并捕获最大值来搜索出数组的max/min。

浮点数也有正无穷大和负无穷大,我应该用它们来代替吗?如果是这样,我该如何在我的代码中表示呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-21 16:11:17

您可以使用<limits>中定义的std::numeric_limits来查找类型的最小值或最大值(只要存在针对该类型的专门化)。您还可以使用它来检索无穷大(并在前面放一个-来表示负无穷大)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <limits>

//...

std::numeric_limits<float>::max();
std::numeric_limits<float>::min();
std::numeric_limits<float>::infinity();

正如注释中所指出的,min()将返回可能的最低正值。换句话说,可以表示的最接近于0的正值。最低可能值是最大可能值的负数。

当然,std::max_element和min_element函数(在<algorithm>中定义)可能是在数组中查找最大或最小值的更好选择。

票数 165
EN

Stack Overflow用户

发布于 2010-04-21 16:34:26

可以使用-FLT_MAX (或-DBL_MAX)表示最大幅值负数,使用FLT_MAX (或DBL_MAX)表示正值。这为您提供了可能的浮点值(或双精度值)的范围。

您可能不想使用FLT_MIN;它对应于可以用浮点数表示的最小幅度正数,而不是可以用浮点数表示的最负的值。

FLT_MINFLT_MAX对应于std::numeric_limits<float>::min()std::numeric_limits<float>::max()

票数 50
EN

Stack Overflow用户

发布于 2010-04-21 16:25:04

实际上不需要初始化到最小/最大来找到数组中的最小/最大:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
double largest = smallest = array[0];
for (int i=1; i<array_size; i++) {
    if (array[i] < smallest)
        smallest = array[i];
    if (array[i] > largest0
        largest= array[i];
}

或者,如果你不止一次这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <utility>

template <class iter>
std::pair<typename iter::value_type, typename iter::value_type> find_extrema(iter begin, iter end) {
    std::pair<typename iter::value_type, typename iter::value_type> ret;
    ret.first = ret.second = *begin;
    while (++begin != end) {
        if (*begin < ret.first)
           ret.first = *begin;
        if (*begin > ret.second)
           ret.second = *begin;
   }
   return ret;
}

提供示例代码的缺点--我看到其他人已经提出了同样的想法。

请注意,虽然该标准具有min_element和max_element,但使用它们将需要扫描数据两次,如果数组很大,这可能是一个问题。最近的标准通过添加一个std::minmax_element来解决这个问题,它的功能与上面的find_extrema相同(在一次遍历中找到集合中的最小和最大元素)。

编辑:解决在无符号数组中查找最小非零值的问题:观察无符号值在达到极值时“回绕”。为了找到最小的非零值,我们可以从每个非零值中减去一个用于比较。任何零值都将“环绕”到该类型的最大可能值,但其他值之间的关系将被保留。在我们完成之后,很明显我们会在我们找到的值上加一个。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unsigned int min_nonzero(std::vector<unsigned int> const &values) { 
    if (vector.size() == 0)
        return 0;
    unsigned int temp = values[0]-1;
    for (int i=1; i<values.size(); i++)
        if (values[i]-1 < temp)
            temp = values[i]-1;
    return temp+1;
}

注意,这仍然使用第一个元素作为初始值,但我们仍然不需要任何“特殊情况”代码--因为这将绕回到可能的最大值,任何非零值都将作为较小的值进行比较。结果将是最小的非零值,或者当且仅当向量不包含非零值时为0。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2684603

复制
相关文章
图像特效显示(上)
准备11月份更一个新的系列,之前看的杨淑莹老师的《数字图像处理Visual Studio C++技术实现》,里面的代码都没来得及打,而且其是基于自定义的图像类实现的,这个系列就把所有例程移植为opencv-C++实现,也就是算法逻辑用C++实现,图像对象使用opencv自带的图像类。
周旋
2022/08/07
1.1K0
图像特效显示(上)
(译)SDL编程入门(2)在屏幕上显示图像
注意:从现在开始,教程将只涉及源代码的关键部分。如果想看完整的程序,你必须下载完整的源码。
arcticfox
2020/09/24
2.7K0
Python+Matplotlib显示图像并实时局部放大
在主坐标系中显示一幅图像,在右上角创建子坐标系并随着鼠标移动实时放大显示图像的局部。
Python小屋屋主
2023/02/28
1.1K0
Python+Matplotlib显示图像并实时局部放大
IOS – OpenGL ES 图像凹面镜放大效果 GPUImagePinchDistortionFilter
GPUImagePinchDistortionFilter 属于 GPUImage 图像视觉效果相关,用来处理图像凹面镜放大。shader 源码如下:
猿说编程[Python和C]
2023/04/01
4220
在iOS上推流
编译librtmp需要用到openssl,所以先编译openssl,下载脚本OpenSSL。
Helloted
2022/06/07
8650
在iOS上推流
怎样在ios上上架app
在上架App之前想要 真机测试的同学 请查看 iOS- 最全的真机测试教程 里面包含怎么让多台电脑同时 上架App和同时真机调试。P12文件的使用详解
iOS程序应用
2023/01/13
5350
iOS 图片浏览的放大缩小
功能描述:支持网络和本地gif、jpeg等格式图片的浏览、捏合或双击放大缩小、长按保存到本地相册、获取gif图片的循环次数和时长。 效果预览.gif 主要部分:创建一个继承于UIScrollView的
且行且珍惜_iOS
2018/05/22
3.9K0
深度学习应用:iOS 上的图像风格迁移
图像风格迁移,用 python 就可以实现,如果想要在手机上面(不联网)查看效果怎么办呢?
iOSDevLog
2019/02/20
1.1K0
数字图像放大算法
上一篇推送中,为大家介绍了几种图像处理算法总结的方法,在本次推送中,二白继续为大家介绍余下的方法。
小白学视觉
2019/10/24
1.7K0
在Android和iOS上设置手机ip详细教程
大家好!今天我们将分享一个关于如何在Android和iOS设备上设置手机ip(Layer 2 Tunneling Protocol)的简易教程。如果你想要通过安全且可靠的方式连接到远程网络,那么跟着本文一起学习吧!无需复杂操作,让我们开始愉快地探索吧!
华科云商小徐
2023/09/07
6010
老司机带你走进Core Animation 之粒子发射、TileLayer与异步绘制
老司机带你走进Core Animation 之粒子发射、TileLayer与异步绘制
老司机Wicky
2018/08/22
9750
老司机带你走进Core Animation 之粒子发射、TileLayer与异步绘制
原-图像处理基础(二)图像的放大与缩小
最近邻插值法 其中 size(g(x))代表图像像素矩阵列宽 size(g(y))代表图像像素矩阵行高 scale 代表缩放倍数 \begin{matrix} f(x)=g(round(x),r
Pulsar-V
2018/04/28
2.9K0
原-图像处理基础(二)图像的放大与缩小
iOS 的系统类信息在栈上?
前言 今天有位群友抛出了一个很有意思的问题:为什么系统类的 class 地址比栈区变量更高? image-20210519235852843 iOS 进程内存布局 通常情况下,我们对进程内存的布局
酷酷的哀殿
2021/06/22
8130
iOS 的系统类信息在栈上?
c#利用Halcon的图像显示控件显示图像
?
vv彭
2020/10/27
2.9K0
c#利用Halcon的图像显示控件显示图像
将jpeg图片显示在framebuffer上
点击(此处)折叠或打开 /************************************************** * example5.c * Author: T-bagwell * * Compile:gcc -Wall example5.c -o example5 *************************************************/ #include <stdio.h> #inclu
用户3765803
2019/03/05
1.2K0
Upscayl,引领 AI 图像放大技术
在数字时代,图像无处不在。无论是在社交媒体上分享照片,还是在商业领域中进行品牌宣传,我们都希望能够呈现出清晰、精美的图像。然而,有时候我们只能获得低分辨率的图像,这让我们感到困惑和失望。但是,现在有一个令人兴奋的解决方案——Upscayl,这是一项引领 AI 图像放大技术的在线工具。
程序那些事儿
2023/10/07
6280
Upscayl,引领 AI 图像放大技术
iOS 图片预览 放大缩小的实现方式
把UIImageView放到UIScrollView中 对UIImageView添加点击事件实现
码客说
2019/10/22
2.5K0
图像放大处理过程
设置图像放大使用的方法,插值或者不插值 RenderOptions.SetBitmapScalingMode(grid, BitmapScalingMode.NearestNeighbor);
sofu456
2021/12/06
4200
图像放大处理过程
8. 图像处理的应用 - 动作放大
上一次我给大家提到了延时摄影作品中通常会有随机的短期抖动,我介绍了一种算法可以分离短期和长期的运动,并通过滤除短期抖动、增强长期运动来获取到平滑的视频。而很多时候,我们会对视频中的非常隐晦的时域变化感兴趣。所以这一次我会介绍一个计算摄影技术构成的"动作放大器",它能够高效的将视频中的难以用肉眼察觉的变化分离出来,并在重新渲染过程中进行放大,生成新的视频。我初次接触这个应用方向时大吃一惊,我希望也能够带给你这种感觉。
HawkWang
2020/04/17
1.1K0
8. 图像处理的应用 - 动作放大
如何快速制作放大图像效果?
3. 右键选择椭圆工具,然后按住shfit键,在画布上画出一个合适大小的正圆形。
Mark Chen
2020/11/02
1.9K0
如何快速制作放大图像效果?

相似问题

放大iOS上的图像视图

12

在没有CATiledLayer的情况下,iOS应用中的巨大图像?

20

缩点识别器手势IOS上的图像缩放

10

iOS - CATiledLayer renderInContext:畸变图像的结果

11

捏缩以放大镀铬

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文