查找向量中最接近的值

2024-04-19

我想要完成的是迭代双精度值向量并返回最接近的可能双精度值的向量位置。我对此有两个问题。

  1. 当尝试使用以下命令查找向量中最接近的双精度值时lower_bound(),如果我输入 1,我只会收到非零的值。

  2. 我不知道如何使用lower_bound返回向量位置而不是双精度值。

这是我正在尝试的代码中使用的三个主要文件

转换.cpp

double Convert::convertmVtoK(double value)
{
    double conversion = *std::lower_bound(mV.begin(), mV.end(), value);
    cout<<"This is conversion mV to K"<<" "<< conversion;
}

double Convert::convertKtomV(double value)
{
    double conversion = *std::lower_bound(mV.begin(), mV.end(), value);
    cout<<"This is conversion K to mV"<<" "<< conversion;
}

转换.h

class Convert
{
    public:
        Convert();
        virtual ~Convert();
        double convertmVtoK(double mV);
        double convertKtomV(double K);
        void readFile();

    protected:

    private:
        std::ifstream inFile;
        std::vector<double> kelvin,mV,sensitivity;
        double tempKelvin,tempmV,tempSensitivity;
};

#endif // CONVERT_H

Main.cpp

#include "Convert.h"
#include <stdio.h>
#include<fstream>
#include<iostream>


int main()
{
    Convert convert;
    convert.readFile();
   convert.convertmVtoK(2.0);
    convert.convertKtomV(5.000);

    return 0;
}

更新:所以我仍在尝试使用 lower_bound()。这是我更新的功能。

double Convert::convertmVtoK(double value)
{
    std::vector<double>::iterator pos;

    pos = std::lower_bound(mV.begin(), mV.end(), value);
    cout<<"This is conversion mV to K"<<" "<< kelvin[(pos-mV.begin())];
}

目前,如果我输入浮点值,我仍然无法接收正确的向量值,它会返回 0 或 [0] 向量值。

更新 2:文本值

1.4 1.644290    -12.5
1.5 1.642990    -13.6
1.6 1.641570    -14.8
1.7 1.640030    -16.0
1.8 1.638370    -17.1
1.9 1.636600    -18.3
2.0 1.634720    -19.3
2.1 1.632740    -20.3

您可以使用min_element https://en.cppreference.com/w/cpp/algorithm/min_element与一个比较器,将距离value考虑到:

// precondition: mV is not empty
double get_closest(double value) const
{
    assert(!mV.empty());
    auto it = std::min_element(mV.begin(), mV.end(), [value] (double a, double b) {
        return std::abs(value - a) < std::abs(value - b);
    });
    assert(it != mV.end());

    return *it;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找向量中最接近的值 的相关文章

随机推荐

  • Node.js 和 C/C++ 集成:如何正确实现回调?

    我正在尝试实现一个与 Node js 集成的 C 扩展 该扩展将在内部调用一些阻塞调用 因此它需要为 Node js 世界提供一个非阻塞接口 如指定https nodejs org api addons html https nodejs
  • 防止 GNU make 在环境变量中扩展美元符号

    有没有办法让 GNU Make 在环境变量中按字面意思解释美元符号 获取这个 makefile echoFOO echo FOO 像这样运行它 FOO a bc make echo ac ac 我希望它能从字面上回应 a bc 但我找不到一
  • 在客户端 API 中使用 JWT 令牌

    我在 NET5 中有一个 API 使用 JWTBearer 来保护 API 现在我想配置我的客户端应用程序以使用从 api gettoken 生成的令牌 它在 swagger 中工作得很好 但我不知道如何配置我的 MVC 和 API 消费
  • UIScrollView:缩放后内容偏移计算

    有人可以建议在 UIScrollView 放大后使用哪个公式来计算内容偏移吗 让我们考虑以下示例 我有一个 UIScrollView 内容视图的大小为 1000 1000 那么如果我以编程方式setZoomScale到 2 0 并在scro
  • Riak:如果目标被删除,链接会消失吗?

    当从商店中删除商品时 链接到现在丢失的商品的所有文档中的链接是否会自动删除 或者我们是否遇到过类似于 HTML 页面上损坏的链接的情况 不 链接不会自动删除 链接只是与对象一起存储的元数据 因此要查找链接到已删除对象的所有对象 您需要遍历整
  • 检查服务器上文件的差异

    我的机器上有一个存储库的工作副本 并且我知道它已在服务器上更新 我想知道如何通过使用来获取新版本和工作副本中的版本之间的差异svn命令行参数 我有办法做到这一点吗 工作副本是修订版 BASE 存储库中的最新副本是修订版 HEAD 这会将您的
  • 在 C++03 中返回 `std::auto_ptr` 集合之类的内容的最佳方法是什么?

    std auto ptr不允许存储在STL容器中 例如std vector 但是 有时我需要返回多态对象的集合 因此我无法返回对象向量 由于切片问题 我可以用std tr1 shared ptr并将它们粘贴在vector 但随后我必须付出高
  • 重定向后,curl 对所有请求使用 POST

    根据文档和一些类似的问题 SOcurl 应该遵循使用 GET 方法的重定向 除非将 post30x 指定为参数 但这是我测试的结果 curl kvv b tmp tmp BEo6w3GKDq c tmp tmp BEo6w3GKDq X P
  • 增强元组+变换

    是否可以进行以下操作 假设我的 boost 元组有
  • 检测类属性值更改,然后更改另一个类属性

    假设我有一个名为 Number 的类 class Number def init self n self n n self changed None a Number 8 print a n prints 8 a n 9 print a n
  • 用面向对象的方法设置标签元素的属性

    标签有一个 for 属性 使它们指向某个输入字段 我需要使用 JQuery 更改此属性的值 以便我可以使用 label attr for targetName 但我还需要设置 className 所以我更喜欢使用 label attr fo
  • 当给定距起点的距离时,找到贝塞尔曲线上的点?

    我创建了一条 4 点贝塞尔曲线和一个距离 从起点开始 如何找到距起点一定距离的点的 x y 坐标 我查看了其他示例 据我所知 他们通过将曲线划分为几千个点 然后找到最近的点来近似值 这对我不起作用 对于我正在做的事情 我希望精确到小数点后两
  • 使用 Python 移动特定文件类型

    我知道这对你们中的许多人来说会非常容易 我刚刚开始学习 Python 需要一些基本文件处理方面的帮助 我拍摄了很多屏幕截图 最终出现在我的桌面上 因为这是默认设置 我知道我可以更改屏幕截图设置以自动将其保存在其他位置 不过 我认为这个程序将
  • 如何在多个 Gradle 项目之间共享样板 Kotlin 配置?

    The 典型的 Kotlin 配置 https kotlinlang org docs reference using gradle htmlGradle 项目中的代码非常样板 我正在寻找一种将其抽象为外部构建脚本的方法 以便可以重用它 我
  • Scala for 循环内的赋值

    这段代码有什么区别吗 for term lt term array val list hashmap get term and for term lt term array val list hashmap get term 在循环内部我正
  • 带有背景图像的 UITableView 单元格

    我有一个 UITableView 其中有 3 张图像 1 表示选定的单元格 1 表示单元格背景 1 表示TableView 背景 我选择的单元格工作正常 但正常单元格和 TableView 背景 当您向下 向上滚动太多时 单元格后面的背景
  • 适用于 Android 的动画 WebP 编码器

    有没有关于如何编码的示例动画WebP对于安卓 或者也许有人成功了并且可以指导我完成它 我有一批 webP 图像 我想用它们创建一个动画图像 有 libwebp 库 但是 它不支持动画 webP 如果我从所读内容中理解正确 我需要使用 web
  • jQuery 加载到变量

    我需要将 jQuery 加载结果插入到变量中 页面 ajax html 上带有 id 测试的元素的内容 result load ajax html test 尝试使用jQuery get http api jquery com jQuery
  • 如何将 NSMutableOrderedSet 转换为通用数组?

    我有这个for循环 p is a NSManagedObject fathers is a to many关系 所以我需要投射NSMutableOrderedSet to Family 但它不起作用 为什么 for f in p fathe
  • 查找向量中最接近的值

    我想要完成的是迭代双精度值向量并返回最接近的可能双精度值的向量位置 我对此有两个问题 当尝试使用以下命令查找向量中最接近的双精度值时lower bound 如果我输入 1 我只会收到非零的值 我不知道如何使用lower bound返回向量位