You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenCV 2.4.9的for循环中用vector存储float值

在OpenCV 2.4.9中存储float类型dist值到vector的实现方法

嘿,这个需求其实非常容易实现——OpenCV 2.4.9完美兼容C++的STL容器,直接用std::vector<float>就能搞定,步骤超简单:

  • 首先,确保你包含了必要的头文件:#include <vector>(用于STL容器)和OpenCV的核心头文件#include <opencv2/core/core.hpp>。
  • 提前定义一个std::vector<float>类型的容器,用来存放所有dist值。
  • 在for循环里,每次计算得到float类型的dist后,调用push_back()方法把值添加到vector里即可。

给你一个完整的代码示例,模拟你的使用场景:

#include <opencv2/core/core.hpp>
#include <vector>
#include <iostream> // 用于后续打印验证

int main() {
    // 初始化用于存储dist值的vector
    std::vector<float> dist_list;

    // 模拟你的业务循环,这里用10次循环生成示例dist值
    for (int idx = 0; idx < 10; ++idx) {
        // 假设这里是你计算dist的逻辑,生成一个float值
        float dist = idx * 1.23f; // 示例计算,替换成你的真实逻辑
        // 将当前dist存入vector
        dist_list.push_back(dist);
    }

    // 后续处理示例:遍历vector查看所有存储的dist值
    std::cout << "所有存储的dist值:" << std::endl;
    for (float d : dist_list) {
        std::cout << d << " ";
    }
    std::cout << std::endl;

    return 0;
}

额外补充几个小提示:

  • 如果你的dist是double类型,记得用static_cast<float>(dist)强制转换后再存入,避免类型不匹配。
  • OpenCV 2.4.9也有自带的cv::Vec类,但它更适合固定长度的向量(比如二维/三维点),存储一系列独立的dist值,std::vector<float>的灵活性更高,后续做排序、统计、传递给其他函数都更方便。
  • 后续你可以直接用STL的各种算法操作这个vector,比如std::sort()排序,std::accumulate()求和等,完全不需要额外适配。

内容的提问来源于stack exchange,提问作者Mithun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:09:12