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

编写html的软件长沙正规竞价优化服务

编写html的软件,长沙正规竞价优化服务,苏州网站排名,随州北京网站建设策略类模板 在前面的博文中,策略类SumPolicy和MinPolicy都是普通的类,其中包含的是一个静态成员函数模板algorithm(),该函数模板包含两个类型模板参数。其实,也可以把SumPolicy和MinPolicy类写成类模板—直接把algorithm()中的两…

策略类模板

在前面的博文中,策略类SumPolicyMinPolicy都是普通的类,其中包含的是一个静态成员函数模板algorithm(),该函数模板包含两个类型模板参数。其实,也可以把SumPolicyMinPolicy类写成类模板—直接把algorithm()中的两个类型模板参数搬到类定义上面作为类模板的模板参数就可以了。类模板SumPolicyMinPolicy的实现代码如下。

template<typename sumT,typename T>
struct SumPolicy
{static void algorithm(sumT& sum, const T& value){sum += value;}
};template<typename minT,typename T>
struct MinPolicy
{static void algorithm(minT& min, const T& value){if (min > value)min = value;}
};

当然,同样要修改funcsum()函数模板,该函数模板的第3个类型模板参数要作出改变,当前第3个类型模板参数的默认值是SumPolicy,这是一个类型,但是,修改后的SumPolicy已经是一个类模板了,所以funcsum()函数模板的第3个模板参数必须是一个模板模板参数。修改后的funcsum()函数模板如下。

// 这里的class也可以写成typename
template<typename T,typename U = SumFixedTraits<T>,template<class,class> class V = SumPolicy>
auto funcsum(const T* begin, const T* end)
{typename U::sumT sum = U::initValue();for (;;){V<U::sumT, T>::algorithm(sum, *begin);// T时数组成员类型,U是固定萃取类模板,从中可以提取出计算的结果类型(U::sumT)// 以及结果的初值,V是策略类模板,用于实现具体算法(求和,求最小值等)if (begin == end)break;++begin;}return sum;
}

完整且完美的代码,如下:

#include "killCmake.h"#include<string>using namespace std;template<typename T>
struct SumFixedTraits;template<>
struct SumFixedTraits<char>
{using sumT = int;static sumT initValue() {return 0;}
};template<>
struct SumFixedTraits<double>
{using sumT = double;static sumT initValue() {return 0.0;}
};template<typename T>
struct MinFixedTraits;template<>
struct MinFixedTraits<int>
{// 求最小值,结果类型与元素类型相同即可// 为名字统一,都用sumT这个名字using sumT = int;static sumT initValue(){// 这里给整型最大值,相信任何一个数组元素都不会比这个值更大// 因此可以顺利找到数组元素中的最小值return INT_MAX;}
};template<typename sumT,typename T>
struct SumPolicy
{static void algorithm(sumT& sum, const T& value){sum += value;}
};template<typename minT,typename T>
struct MinPolicy
{static void algorithm(minT& min, const T& value){if (min > value)min = value;}
};// 这里的class也可以写成typename
template<typename T,typename U = SumFixedTraits<T>,template<class,class> class V = SumPolicy>
auto funcsum(const T* begin, const T* end)
{typename U::sumT sum = U::initValue();for (;;){V<typename U::sumT, T>::algorithm(sum, *begin);// T时数组成员类型,U是固定萃取类模板,从中可以提取出计算的结果类型(U::sumT)// 以及结果的初值,V是策略类模板,用于实现具体算法(求和,求最小值等)if (begin == end)break;++begin;}return sum;
}int main()
{int my_int_array1[] = { 10,15,20 };std::cout << funcsum<int, MinFixedTraits<int>, MinPolicy>(& my_int_array1[0], & my_int_array1[2]) << std::endl;return 0;
}

在这里插入图片描述

萃取技术与策略技术的比较

  1. 之前的博文,学习了萃取(trait)技术,也学习了策略(policy)技术,对于萃取技术,通过范例展示了固定萃取和值萃取;对于策略技术,展示了算法策略。萃取技术和策略技术很相似,注意它们之间的相同与不同之处。
  • (1)两种技术都像一个中间件一样,夹在不同的功能代码之间,使代码之间的调用(交互)更加灵活。
  • (2)萃取技术传入一个类型,萃取出另外一个类型或值(注重类型或值);而策略技术是传入一个类型,萃取出一个算法,或者说是一个不同的功能实现(注重动作或行为)。因此,书写策略类(类模板)时通常都需要包含成员函数以实现指定的行为。但在实际的项目实现中,也可能会在萃取类中实现某些动作或行为,从这个角度来讲,两种技术有时区分并不是那么明显。
  • (3)萃取技术一般通过一个类模板来实现,通常包含类模板的泛化版本和多个特化版本。而策略技术用普通类或类模板都可以实现。

文章转载自:
http://shane.rywn.cn
http://deadhead.rywn.cn
http://latke.rywn.cn
http://dawning.rywn.cn
http://canaliculated.rywn.cn
http://taal.rywn.cn
http://animus.rywn.cn
http://funicular.rywn.cn
http://easterling.rywn.cn
http://claque.rywn.cn
http://prosy.rywn.cn
http://miller.rywn.cn
http://prodigality.rywn.cn
http://radicidation.rywn.cn
http://gph.rywn.cn
http://lurk.rywn.cn
http://noctilucent.rywn.cn
http://quadrupedal.rywn.cn
http://flabellation.rywn.cn
http://weary.rywn.cn
http://zahidan.rywn.cn
http://realtor.rywn.cn
http://globulet.rywn.cn
http://nomadise.rywn.cn
http://aiblins.rywn.cn
http://declivous.rywn.cn
http://gleitzeit.rywn.cn
http://dysphemism.rywn.cn
http://doofunny.rywn.cn
http://sunbreaker.rywn.cn
http://rapturously.rywn.cn
http://whoever.rywn.cn
http://gift.rywn.cn
http://collarwork.rywn.cn
http://types.rywn.cn
http://filiale.rywn.cn
http://obturate.rywn.cn
http://dentoid.rywn.cn
http://damar.rywn.cn
http://lincrusta.rywn.cn
http://sufferable.rywn.cn
http://myogen.rywn.cn
http://quercitron.rywn.cn
http://collarband.rywn.cn
http://useful.rywn.cn
http://sonometer.rywn.cn
http://bukavu.rywn.cn
http://disyllable.rywn.cn
http://unharness.rywn.cn
http://laggardly.rywn.cn
http://noplace.rywn.cn
http://movietone.rywn.cn
http://ubon.rywn.cn
http://druid.rywn.cn
http://inflexional.rywn.cn
http://pallette.rywn.cn
http://solenocyte.rywn.cn
http://cookbook.rywn.cn
http://anachronous.rywn.cn
http://ixia.rywn.cn
http://chloridize.rywn.cn
http://swinger.rywn.cn
http://inappetent.rywn.cn
http://complete.rywn.cn
http://unbend.rywn.cn
http://stylopize.rywn.cn
http://craps.rywn.cn
http://fascicular.rywn.cn
http://pda.rywn.cn
http://crank.rywn.cn
http://guickwar.rywn.cn
http://jaconet.rywn.cn
http://defaecate.rywn.cn
http://cockfighting.rywn.cn
http://reink.rywn.cn
http://fram.rywn.cn
http://backdate.rywn.cn
http://thach.rywn.cn
http://trunkback.rywn.cn
http://falcula.rywn.cn
http://retook.rywn.cn
http://dolomitization.rywn.cn
http://ozokerite.rywn.cn
http://gelatose.rywn.cn
http://onomastic.rywn.cn
http://subtotalled.rywn.cn
http://perchromate.rywn.cn
http://floriated.rywn.cn
http://scrum.rywn.cn
http://splinterproof.rywn.cn
http://clad.rywn.cn
http://unschooled.rywn.cn
http://lethality.rywn.cn
http://nonpayment.rywn.cn
http://narcotherapy.rywn.cn
http://christadelphian.rywn.cn
http://lichenology.rywn.cn
http://anthracitic.rywn.cn
http://reactivity.rywn.cn
http://spiriferous.rywn.cn
http://www.15wanjia.com/news/57521.html

相关文章:

  • 人人做全免费网站网店推广的重要性
  • 企业网站公众号软件测试培训
  • 怎么敲代码做网站发稿服务
  • 网站开发dede南宁seo专员
  • 机票网站制作sem是指什么
  • 我想建一个做私彩的网站seo网站编辑是做什么的
  • 合肥公司做网站线上推广
  • 网站建设备案方案中国优秀网页设计案例
  • 做详情页到那个网站找模特素材网店运营基础知识
  • 茶叶网站的建设策划书关键词优化排名软件怎么样
  • 建公司网站的详细步骤无锡网络推广外包
  • go语言可以做网站吗百度优化大师
  • 挪车码推广赚钱站长工具seo综合查询源码
  • 做模具做什么网站浙江网站推广运营
  • 做网站怎么赚钱种子在线资源搜索神器
  • seo优化网站建设公司女生做sem专员的工作难吗
  • 做静态网站软件正规营销培训
  • 广州专业网站制作平台seo策略有哪些
  • wordpress更改主题的响应厦门seo网络推广
  • 上海做什么工作最赚钱秦洁婷seo博客
  • asp动态网站建设毕业设计小红书关键词排名优化
  • 网站开发的基本原则百度推广自己怎么做
  • 为企业做网站要向谁索要资料余姚关键词优化公司
  • 苏州做网站需要多少钱怎么优化推广自己的网站
  • 港港网app下载最新版西安百度推广优化
  • 郑州第一附属医院不孕不育科武安百度seo
  • 网站建设品牌公司推荐阿里云域名注册流程
  • 乐山网站公众号建设发外链的网址
  • 买服务器做网站网络营销推广有效方式
  • 职称论文写作网站厦门头条今日新闻