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

dedecms手机版重庆网站建设优化

dedecms手机版,重庆网站建设优化,网站开发 卡片,网站代码怎么做1.前言 swap是个有趣的函数#xff0c;原本它只是STL的一部分#xff0c;而后成为异常安全编程的基石#xff0c;以及用来处理自我赋值可能性的一个常见机制。由于swap功能如此强大#xff0c;适当的实现很重要。然而在非凡的重要性之外它也带来了非凡的复杂度。 所谓swa…1.前言 swap是个有趣的函数原本它只是STL的一部分而后成为异常安全编程的基石以及用来处理自我赋值可能性的一个常见机制。由于swap功能如此强大适当的实现很重要。然而在非凡的重要性之外它也带来了非凡的复杂度。 所谓swap两对象值意思是将两对象的值彼此赋予对方。缺省情况下swap动作可由标准程序库提供的swap算法完成。其典型的实现方式如下 namespace std{templatetypename Tvoid swap(T A,T b){T temp(a);ab;btemp;} } 只要类型T支持copying(通过copy构造函数和copy assignment操作符完成)缺省的swap实现代码就会帮你置换类型为T的对象不需要为此做另外的工作。 该缺省的swap实现版本十分平淡无法刺激你的肾上腺。它涉及到三个对象的复制a复制到temp,b复制到a,以及temp复制到b。但是对于某些类型而言这些复制动作没有必要对那种情况而言swap缺省行为等于杀机用牛刀。 2.实例 最主要的一种类型就是“以指针指向一个对象内含真正数据”那种类型。这种设计的常见表现形式就是所谓的“pimpl手法”。如果以这种手法设计Widget class看起来像这样 class WidgetImpl{ //针对Widget数据而设计的classpublic: ... private: int a,b,c;//可能有许多数据 std::vectordouble v;//意味复制时间很长 。。。}; class Widget{public:Widget(const Widget rhs);Widget operator(const Widget rhs){...*pImpl*(rhs.pImpl);}...private:Widget Impl* pImpl;//指针所有对象内含Widget } 一旦要置换两个Widget对象值我们唯一需要做的就是置换其pImpl指针但缺省的swap算法不知道这一点它不止复制三个widgets还复制三个WidgetImpl对象。非常缺乏效率。 我们希望能够告诉std::swap当widget被置换时真正该做的是置换其内部的pImpl指针。确切实践这个思路的一个做法是将std::swap针对Widget特化下面是基本的构想但目前这个形式无法通过编译 namespace std{templatevoid swapWidget(Widget a,Widget b){swap(a.pImpl,b.pImpl);} } 这个函数一开始得template表示它是std::swap的一个全特化版本函数名称之后的Widget表示这一特化版本系针对“T是Widget”而设计。换句话说当一般性的swap template施行于Widget身上便会启用这个版本。通常我们不能够改变std命名空间内的任何东西但可以为标准template制造特化版本使它专属于我们自己的classes。 但是该函数无法通过编译因为它企图访问a和b内的pImpl指针而那却是private,我们可以将这个特化版本声明为friend但和以往的规矩不太一样我们令Widget声明为swap的public成员函数做真正的置换工作然后将std::swap特化令它调用该成员函数 class Widget{public:...void swap(Widget other){using std::swap;swap(pImpl,other.pImpl);//若要置换Widgets就置换其pImpl指针}... }; namespace std{templatevoid swapWidget(Widget a,Widget b){a.swap(b);//若要置换Widgets调用其swap成员函数} }这种做法不只能够通过编译还与STL容器有一致性因为所有STL容器也都提供有public swap成员函数和std::swap特化版本。 然而假设Widget和WidgetImpl都是class templates而非classes,也许我们可以将Widget内的数据类型加以参数化 templatetypename T class WidgetImpl{...}; templatetypename T class Widget{....};
http://www.hkea.cn/news/14400570/

相关文章:

  • 河北省建设工程招标投标网站成都网站建设报价表
  • 卖文具的网站建设网站风格什么意思
  • 网站推广问题淘宝上做网站排名
  • 手机微网站怎么做的高端网站设计公司有
  • 山东网站建设app有没有做书签的网站
  • 兰州新区规划建设管理局网站网站设计学校
  • 泉州建网站网站建设找工作
  • 网站服务器有哪几种网页设计模板html代码软件
  • tk网站域名郑州网站建设郑州网络推广
  • 网站安全建设情况报告关键词推广设置方法
  • 个人做电影网站有什么风险电子商务网站推广的目的
  • 信用 网站 建设方案天河建设网站制作
  • 松江集团网站建设网站游戏网站怎么自己做
  • 建设模板网站中国网络平台排名前十
  • 住建局官网网站网站快速推广排名技巧
  • 摄影图片素材网站商务网站信息审核的重要性在于
  • 网站建设评语wordpress2014
  • 毕业设计购物网站开发的意义wordpress 个人简介栏
  • 建自己的网站wordpress发文章
  • 2016网站设计免费ppt模板的网站
  • 哪个网站可以接加工单泰安范镇孟庄村
  • 东营网站建设铭盛信息做视频网站 视频放在哪里找
  • 如何检测网站被搜索引擎惩罚了桂林市天气预报7天
  • 衡水网站建设知识呼市做网站
  • 临邑建设局网站冠县网站制作
  • wordpress怎样做单页网站不用域名做自己的网站
  • 局域网内部网站建设app做旅游游客产品的网站
  • 关于网页设计的教育网站设计软件 开发 公司
  • 南山网站 建设seo信科网站运营代理
  • 网站优化毕业设计网站建设的法律依据