当前位置: 首页 > wzjs >正文

网站建设开发协议站长工具爱站

网站建设开发协议,站长工具爱站,网站敏感目录漏洞修复,订货商城小程序源码一、std::clamp() 其实在前面简单介绍过这个函数&#xff0c;但当时只是一个集中的说明&#xff0c;为了更好的理解std::clamp的应用&#xff0c;本篇再详细进行阐述一次。std::clamp在C17中其定义的方式为&#xff1a; template< class T > constexpr const T& cl…

一、std::clamp()

其实在前面简单介绍过这个函数,但当时只是一个集中的说明,为了更好的理解std::clamp的应用,本篇再详细进行阐述一次。std::clamp在C++17中其定义的方式为:

template< class T >
constexpr const T& clamp( const T& v, const T& lo, const T& hi );
template< class T, class Compare >
constexpr const T& clamp( const T& v, const T& lo, const T& hi,Compare comp );

说明文档中表明其使用“<”(c++20后使用less,所以T必须可<运算,否则未定义)或自定义comp来实现。无论使用哪种实现,其结果都是返回v(lo~hi范围内)或返回边界值(接近于v的lo或 hi)的引用。注意,如果lo和hi不可比较,则行为未定义。最简单的就是lo>hi,行为即未定义。

二、应用

std::clamp的出现,解决了一个很常见的问题,就是判断范围。这个功能说大不大,但用处非常多,比较在实际中判断电压、电流的值,判断亮度的值,判断数值的域等等,太多了。如果不使用它,就需要自己用if语句来搞定,没有难度,就是少写多写几行代码的事儿。

#include <algorithm>
#include <iostream>constexpr int HI = 1200;
constexpr int LO = 1;
struct Worker{int id = 0;bool operator < (const Worker&w)const{return id < w.id;}
};
int CompFun(const Worker&w1,const Worker&w2){return w1.id < w2.id;
}
int main()
{int v = 16;std::clamp(v, LO, HI);Worker loW {LO};Worker hiW {HI};Worker p1;p1.id = 10;std::cout<<"use compare func clamp value:"<< std::clamp(p1, loW, hiW,CompFun).id<<std::endl;Worker p2;p2.id = 11;std::cout<<" clamp value:"<< std::clamp(p2,loW,hiW).id<<std::endl;//std::cout<<" clamp value:"<< std::clamp(p2,hiW,loW).id<<std::endl;return 0;
}

大家可以猜一下,注释部分的结果,再和说明比较即可明白。

三、分析说明

虽然std::clamp方便简单,但在实践应用中,还是需要和实际场景结合,建议如下:
1、基础类型的判断处理可以转移到此函数中
2、复杂的比较要看情况,不一定非为了使用它搞一个小于运算符的重载
std::clamp之所以表现比较好,主要原因是其内联调用相关函数,对一些比较在底层进行了优化(包括编译优化和CPU优化等)。
不过从实际的经验来看,std::clamp对提高效率并不是太大,所以不需要盲目的应用特别是改写以前的比较代码。但在一些比较重视效率或控制代码的简洁程度上还是有很好的作用。

四、总结

AI在发展,库也在发展,会不会到最后,大家只要碎碎念一下,一个程序就出来?这种不是没有可能。但是这种可能,大概率可能需要相当长的时间。其实如果真到了那个地步,为什么还要写程序?机器人自己就搞定自己了。人类就享受一切即可。
不过到那时,可能大多数人活得更不如意!

http://www.dtcms.com/wzjs/8467.html

相关文章:

  • 微信视频网站怎么做北京百度快照推广公司
  • 常州网站排名优化市场营销最有效的手段
  • 阿里巴巴上做网站要多少钱最好最全的搜索引擎
  • 网站建设英文给你一个网站怎么优化
  • 室内设计网站模板网站推广一般多少钱
  • 数据库查询网站模板昆山网站建设公司
  • 公众号开发用什么技术seo网络推广是什么意思
  • IT做网站工资怎么样windows优化大师在哪里
  • 河北网站建设制作网页宣传
  • 院校网站建设seo攻略
  • 公众号建设成小说网站怎样做市场营销策划
  • 网站建设与维护ppt模板下载seo快速排名优化公司
  • 六安网站制作公司排名宁波网络推广seo软件
  • b2b网站分析昆明百度推广开户
  • 建设一个网站需要的条件网站seo综合查询
  • 网站源代码上传都需要怎么做在哪里打广告效果最好
  • 网站建设找a金手指济宁seo公司
  • 专门做石材地花设计的网站公司网页设计模板
  • ps教程app济南seo小黑seo
  • 怎么做网站优网上卖货的平台有哪些
  • 张家口百度免费做网站搜狗指数
  • 屯留做网站哪里好网络营销网站设计
  • 学校网站建设板块分析app运营需要做哪些
  • 做网站推广的公司好做吗网络促销
  • 四川省纪委网站建设百度一下网页首页
  • 公司网站翻译工作怎么做洛阳seo网站
  • 网站转化怎么做最近三天的新闻热点
  • 芜湖企业做网站重庆网站推广专家
  • 金华做网站最专业的公司怎样创建网站平台
  • 济南本地网站建设公司使用 ahrefs 进行 seo 分析