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

有什么网站可以做运动鞋互联网舆情监控系统

有什么网站可以做运动鞋,互联网舆情监控系统,做网站图片路径做缓存吗,原创文学网站建设1、使用临时变量交换 交换变量的值,最常见的方法就是用临时变量。 void swap1(int& a, int& b){int c a;a b;b c; }清晰明了。 2、位运算版 对于整数类型,相信很多人都见过下面方法,可以使用位运算,从而不借用临时…

1、使用临时变量交换

交换变量的值,最常见的方法就是用临时变量。

void swap1(int& a, int& b){int c = a;a = b;b = c;
}

清晰明了。

2、位运算版

对于整数类型,相信很多人都见过下面方法,可以使用位运算,从而不借用临时变量

void swap2(int& a, int& b){a ^= b;b ^= a;a ^= b;
}

逻辑上相当于

void swap2(int& a, int& b){int c = a ^ b;int d = b ^ c; 	// == b ^ (a ^ b); int e = c ^ d;  // == (a ^ b) ^ (b ^ (a ^ b));b = d;a = e;
}

根据异或性质,显然成立。
甚至能写成一行 a ^= b ^= a ^= b;

3、分析

可能有人觉得,CPU处理位运算很快,位运算版还没有使用额外变量,所以位运算版效率更高
但是,这是错误的观念,swap2 比 swap1 效率低很多,这是因为虽然CPU处理位运算很快,但那是位运算和加减乘除比,要是和纯赋值比,你位运算还得往后稍稍,编译成汇编指令后,位运算版既要赋值,又要计算异或运算,指令数比版本1多的多。
我们来对比一下:
在这里插入图片描述
图中,明显能看到,位运算版实际效率很低。

其他问题

  • 位运算版只能应用于整数(能进行比特异或的类型)
  • 如果参数 a, b 为同一变量,则结果会出错。swap2(a, a) 或导致 a 的值变成 0。
    因此,位运算版交换 几乎没有优点可言,任何情况下,都不建议使用此方式进行变量交换。

4、通用版swap

template<typename T>
void swap(T& a, T& b){T c = std::move(a);a = std::move(b);b = std::move(c);
}

使用移动语义进行变量转移。

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

相关文章:

  • 广东网站开发费用重庆排名优化整站优化
  • 做博客网站要怎么配置的服深圳最新消息今天
  • 如何给网站做排名优化产品关键词大全
  • 卖机票的网站怎么做百度关键词搜索量排名
  • 网站ftp微信公众号小程序怎么做
  • 网站制作工作室制作平台北京关键词优化平台
  • wordpress 评论小工具seo产品优化免费软件
  • 网站开发的工具搜索关键词排名优化
  • 公司做网站的费用属什么用途制作网站模板
  • 怎么建公司邮箱爱采购seo
  • 怎么创建一个网站卖东西如何去推广
  • vs 团队网站开发接单平台app
  • 合规部对于网站建设的意见故事型软文广告
  • 网站建设置顶网络营销策划方案框架
  • 做帖子的网站有哪些爱站关键词挖掘查询工具
  • 石家庄短视频运营网站如何进行优化
  • 深圳制作网站专业北京网站制作公司
  • 沈阳专业网站制作泉州seo外包
  • 免费建网站软件系统百度seo自动优化
  • 郑州微信网站建设久久seo综合查询
  • 网上做结婚照的网站百度seo关键词优化
  • 网站建设与 宣传关系详情页页面页面
  • 自己建公司网站可以嘛知名网络推广
  • 武汉网站建设价格网络广告营销策划方案
  • 网站开发项目项目运营免费网站安全软件下载
  • 北京专业网站建设网站长沙seo网络优化
  • 做网站是三网合一有什么优势bing搜索引擎入口官网
  • 网站优化公司的seo做的好什么网站可以免费发广告
  • 天动力网站开发北京做网站的公司排行
  • 商丘网站制作google官网注册账号入口