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

嘉兴专业做网站wordpress 七牛缩略图

嘉兴专业做网站,wordpress 七牛缩略图,海外商城网站建设,做后期从哪个网站选音乐策略技术中的算法策略 在之前博客中funcsum()函数模板中#xff0c;实现了对数组元素的求和运算。求和在这里可以看作一种算法#xff0c;扩展一下思路#xff0c;对数组元素求差、求乘积、求最大值和最小值等#xff0c;都可以看作算法。而当前的funcsum()函数模板中实现了对数组元素的求和运算。求和在这里可以看作一种算法扩展一下思路对数组元素求差、求乘积、求最大值和最小值等都可以看作算法。而当前的funcsum()函数模板中已经将数组元素的求和算法固定写在了程序代码中为了灵活地将求和算法调整为求乘积、求最大值等算法可以通过引入一个策略policy类SumPolicy达到目的。 // 求和策略类以实现求和算法 struct SumPolicy {// 静态成员函数模板templatetypename sumT,typename T // sumT是和值类型T是数组元素类型static void algorithm(sumT sum, const T value) // 该策略类的核心算法{sum value;} };接着为funcsum()函数模板增加一个新的类型模板参数这个模板参数的默认值就是这个策略类。 修改funcsum()函数模板 templatetypename T,typename U SumFixedTraitsT,typename V SumPolicy auto funcsum(const T* begin, const T* end) {typename U::sumT sum U::initValue();for (;;){// sum (*begin); 此行被下面一行取代V::algorithm(sum, *begin);if (begin end)break;begin;}return sum; }如果要计算一个整型数组中元素的最小值如何实现第1件想到的事情就是写一个新的策略类如这里写一个MinPolicy类仿照SumPolicy类的写法。 struct MinPolicy {templatetypename minT,typename Tstatic void algorithm(minT min, const T value){if (min value)min value;} };在main()主函数中重新写入代码 #include killCmake.h#includestringusing namespace std;templatetypename T struct SumFixedTraits;template struct SumFixedTraitschar {using sumT int;static sumT initValue() {return 0;} };// 最求值策略技术时为了求最小值初始化需要很大 // 所以初始值可以为int最大值21亿 template struct SumFixedTraitsint {using sumT __int64;static sumT initValue() {return 2100000000;} };template struct SumFixedTraitsdouble {using sumT double;static sumT initValue() {return 0.0;} };templatetypename T,typename U SumFixedTraitsT auto funcsum(const T* begin, const T* end) {// using sumT typename SumFixedTraitsT::sumT; 本行不需要// sumT sum SumFixedTraitsT::initValue(); 本行不需要typename U::sumT sum U::initValue();for (;;){sum (*begin);if (begin end)break;begin;}return sum; }// 求和策略类以实现求和算法 struct SumPolicy {// 静态成员函数模板templatetypename sumT,typename T // sumT是和值类型T是数组元素类型static void algorithm(sumT sum, const T value) // 该策略类的核心算法{sum value;} };templatetypename T,typename U SumFixedTraitsT,typename V SumPolicy auto funcsum(const T* begin, const T* end) {typename U::sumT sum U::initValue();for (;;){// sum (*begin); 此行被下面一行取代V::algorithm(sum, *begin);if (begin end)break;begin;}return sum; }struct MinPolicy {templatetypename minT,typename Tstatic void algorithm(minT min, const T value){if (min value)min value;} };int main() {//char my_char_array[] abc;//std::cout (int)(funcsum(my_char_array[0], my_char_array[2])) std::endl;//std::cout (int)(funcsumchar, SumFixedTraitsint(my_char_array[0], my_char_array[2])) std::endl;int my_int_array1[] { 10,15,20 };std::cout funcsumint, SumFixedTraitsint, MinPolicy(my_int_array1[0], my_int_array1[2]) std::endl;return 0; } 这个程序真的很经典个人觉得应该属于中上乘武功了 运行程序看一看新增的代码结果是否正确最开始发现结果为0显然这个结果是不正确的。究其原因在funcsum()中sum用于保存数组元素最小值的变量的初值被设置为0。如果是计算数组元素和值则sum的初值被设置为0是很正常的但如果要计算数组元素的最小值则把sum的初值设置为0是不正常的因为数组中元素的最小值也很可能比0大有这个0存在就无法找到数组中元素的真正最小值。解决方案有以下两个。1可以给funcsum()函数模板增加一个非类型模板参数用于把初值传递进来。2也可以重新写一个固定萃取类模板取代当前的SumFixedTraits模板。这里采用后一种解决方案书写一个新的固定萃取类模板取名为MinFixedTraits。 #include killCmake.h#includestringusing namespace std;templatetypename T struct SumFixedTraits;template struct SumFixedTraitschar {using sumT int;static sumT initValue() {return 0;} };// 最求值策略技术时为了求最小值初始化需要很大 // 所以初始值可以为int最大值21亿 template struct SumFixedTraitsint {using sumT __int64;static sumT initValue() {return 2100000000;} };template struct SumFixedTraitsdouble {using sumT double;static sumT initValue() {return 0.0;} };templatetypename T struct MinFixedTraits;template struct MinFixedTraitsint {// 求最小值结果类型与元素类型相同即可// 为名字统一都用sumT这个名字using sumT int;static sumT initValue(){// 这里给整型最大值相信任何一个数组元素都不会比这个值更大// 因此可以顺利找到数组元素中的最小值return INT_MAX;} };// 求和策略类以实现求和算法 struct SumPolicy {// 静态成员函数模板templatetypename sumT,typename T // sumT是和值类型T是数组元素类型static void algorithm(sumT sum, const T value) // 该策略类的核心算法{sum value;} };templatetypename T,typename U SumFixedTraitsT,typename V SumPolicy auto funcsum(const T* begin, const T* end) {typename U::sumT sum U::initValue();for (;;){// sum (*begin); 此行被下面一行取代V::algorithm(sum, *begin);if (begin end)break;begin;}return sum; }struct MinPolicy {templatetypename minT,typename Tstatic void algorithm(minT min, const T value){if (min value)min value;} };int main() {int my_int_array1[] { 10,15,20 };std::cout funcsumint, MinFixedTraitsint, MinPolicy( my_int_array1[0], my_int_array1[2]) std::endl;return 0; } 运行程序新增的代码行结果为10一切正常。
http://www.sadfv.cn/news/64711/

相关文章:

  • 谁会在掏宝网上做网站做一个电子商务网站在哪里做
  • 婚庆网站源码哪个dns访问国外网站
  • 在线crm视频在线crm免wordpress改造seo
  • 购物网站做兼职建筑设计网站国外
  • 济南 手机网站制作外国的贸易网站
  • 帝国cms做搜索网站产品网页设计公司
  • 网站建设站点无法发布使用wordpress的用户有哪些
  • 行业网站大全青岛哪家做网站的公司好
  • 北京市建网站王者荣耀网页设计报告
  • 成都网站制作需要多少钱软件开发入门教程
  • 做外贸网站报价单网站开发与spark
  • 百度商桥怎样绑定网站群英云服务器
  • 上海哪家做公司网站网站建设背景是什么
  • 广州越秀建网站的公司怎么使用dw做一个网站
  • 如何做网站优化并快速提高权重做网站的图片要求大小
  • 装修网站模板下载网站目录结构图
  • 国外网站国内备案最新行业动态
  • 湛江做网站seo的iis网站开发教程
  • 网站平台免费中国企业网聚焦中原
  • 支付网站开发怎么做账沈阳网站制作机构
  • 哪些大学网站做的比较好织梦 电影网站 模板
  • 网站导航栏代码网贷之家网站建设
  • 任县企业做网站建设旅游网站数据库设计
  • 网站开发 外文文献网站建设与维护 唐清安
  • 网站名字重复如何在已建设好的网站做修改
  • 电子商务网站规划 分析 设计阿里云主机安装wordpress
  • 网站是否备案怎么查询贵阳官网seo诊断
  • 深圳网站建设选哪家关于国家对网站建设
  • 糟糕的网站设计济南有做五合一网站公司
  • 汕头教育学会网站建设涿州网站建设推广