二分法在一个vector容器里面找某一个值,并求出该元素的下标

本文介绍了一种使用C++标准库函数lower_bound进行高效属性查找的方法,该方法应用于井日志数据处理中。通过比较深度值,能够在有序的数据集中快速定位并获取对应的属性值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

float COSGWellLog::GetPropertybyMD(float depth)
{
std::vector<float> vProperty = GetProperty();
std::vector<float> vMD = GetMD();
std::vector<float>::iterator it = std::lower_bound(m_vMD.begin(), m_vMD.end(), depth);
int index = std::distance(m_vMD.begin(), it);
 return  vProperty[index];

}

适用于两组值,有序 切元素个数相同的情况下  比如深度值和深度上的属性值 想根据深度值取属性值 原始方法是找一个map容器 求 把深度和属性一一对应以后 再根据深度取属性,方法不好,这里利用std的lower_bound()函数寻找深度值,然后利用distance函数得出深度值的下标 ,最后根据此下标得到对应的深度值,二分法效率高!


注意学习stL!effective STL


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值