看看样条插值区间查找函数写的多细腻
优秀的程序猿不仅要有深厚理论基础,更要有缜密的思维, 一个简单的函数, 有非常多人都写不好,为什么,
不是做不到,不是想不到, 往往是因为懒而不愿意深入思考. 有句话叫, 天下大事, 必做于细.
int Spline::findTimeInterval(Number time, int startIndex)
{
int length = this->_times.size();
if (time < this->_times[0] || time > this->_times[length - 1])
{
throw DeveloperError("time is out of range.");
}
if (startIndex < 0 || startIndex > length-1)
{
throw DeveloperError("length is out of range.");
}
// Take advantage of temporal coherence by checking current, next and previous intervals
// for containment of time.
if (time >= this->_times[startIndex])
{
if (startIndex + 1 < length && time < this->_times[startIndex + 1])
{
return startIndex;
}
else if (startIndex + 2 < length && time < this->_times[startIndex + 2])
{
return startIndex + 1;
}
}
else if (startIndex - 1 >= 0 && time >= this->_times[startIndex - 1])
{
return startIndex - 1;
}
// The above failed so do a linear search. For the use cases so far, the
// length of the list is less than 10. In the future, if there is a bottle neck,
// it might be here.
int i;
if (time > this->_times[startIndex])
{
for (i = startIndex; i < length - 1; ++i) {
if (time >= this->_times[i] && time < this->_times[i + 1]) {
break;
}
}
} else {
for (i = startIndex - 1; i >= 0; --i) {
if (time >= this->_times[i] && time < this->_times[i + 1]) {
break;
}
}
}
if (i == length - 1) {
i = length - 2;
}
return i;
}
看看样条插值区间查找函数写的多细腻相关推荐
- 如何将zipoutputstream返回_excel:vlookup如何区间查找?如何使用通配符?如何多条件查找?...
今天来分享下vlookup函数的几种特殊用法,一共三种,如何使用通配符,如果多条件查找,如何模糊查找. 1.区间查找 区间查找 函数解读:=VLOOKUP(F2,B2:C5,2,TRUE) 第一个参数 ...
- 2.区间成员函数优先于与之对应的单元素成员函数
案例1:v1.v2两个vector, 将v2后半部分内容赋给v1 区间成员函数版本: std::vector<int> v1; ... std::vector<int> v2; ...
- ad09只在一定范围内查找相似对象_重磅!Excel更新了超级查找函数XLOOKUP,可以对VLOOKUP说拜拜了...
VLOOKUP这个数据查找函数真的是职场必学函数!!! 绝对的,不会VLOOKUP的人会被加班摧残的! 但是面对一些稍复杂的情况 ,VLOOKUP匹配起来却显得比较困难,原因是多数情况需要构造数据 , ...
- 命题作文:Dimension Tree区间查找与IP数据包分类
这个题目有点大,而且我要严格控制字数,不能像< 命题作文:在一棵IPv4地址树中彻底理解IP路由表的各种查找过程>那样扯得那么开了.事实上,这篇作文是上一篇作文中关于区间查找小节的扩展. ...
- STL区间成员函数及区间算法总结
STL区间成员函数及区间算法总结 在这里总结下可替代循环的区间成员函数和区间算法: 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间 ...
- python字符串find函数-python字符串查找函数的用法详解
python字符串查找函数的使用 打开Python开发工具IDLE,新建"findstr.py'文件,并写代码如下: s ='/ab/bx,.s' print (s.find('/x')) ...
- vector 查找_同样是Excel中的查找函数,这个函数却比VLOOKUP功能强100倍
VLOOKUP函数即使很强大,但是也有局限性,有些查找无法实现.今天,跟大家分享一个万能查找函数:LOOKUP. VLOOKUP函数可以实现的查找LOOKUP也可以,VLOOKUP函数不能实现的查找L ...
- excel教程自学网_Excel自学教程:万能查找函数Lookup的神应用和技巧
提起查找函数,大家第一时间想到的肯定是Vlookup,其实大多数人不知道,Lookup才是查找函数之王,它几乎能高效地实现Vlookup函数的所有功能,部分功能是Vlookup函数无法比拟的. 一.语 ...
- vlookup(精确查找、区间查找、反向查找、多条件查找)
一.基本语法 VLOOKUP(查找的值,查找范围,返回列数,查找方式) 查找的值 内容需完全一样: 查找范围 待查找的必须是数据范围的第一列(比如,要查找货品的数量,我们查的是货品,那么货品必须是查找 ...
最新文章
- (001) RN开发之Mac搭建开发环境
- dos通过for命令截取字符串
- 三维重建-opencv实现sfm
- 学一下Unix/C啊
- mybatis 打印SQL语句
- 学python可以从事什么工作-学Python可以找什么工作或者做什么兼职?
- java 编写 servlet 程序_Java技术分享:如何编写servlet程序
- keyup常用事件_KeyUp 事件
- 一分钟了解阿里云产品:专有网络VPC五大热点技术问题分析
- ps 学习总结-卸载不了
- Python-标准库(常用模块)
- 搬运: CVonline: 图像数据库(一) (更新于20190821)
- 英飞凌XC2000系列CAN BootLoader(CAN_BSL)的实现
- 华为拍摄月亮专利公布: 多次曝光获取月亮清晰轮廓
- 完全卸载3dmax(以及桌子全家产品)
- 【转】如何成为一名黑客--Eric Steven Raymond
- Android WebView 踩坑日记,字体怎么突然变小了???
- How add nic driver to initrd
- Android GMS认证项总结
- pat甲级考试报名费_每日一感——记第一次PAT甲级考试之感想