c – 测试固定集是否相等而没有分支

c – 测试固定集是否相等而没有分支,第1张

概述我有一组整数(x,y,z)和一个取3个整数(u,v,w)的函数.如何测试if(x,y,z)==(u,v,w)?天真的方式是: bool match = (x == u || x == v || x == w) && (y == u || y == v || y == w) && (z == u || z == v || z == w); 有没有人知道一些智能位 *** 作/算术做同样的事情? 编辑:我可以 我有一组整数(x,y,z)和一个取3个整数(u,v,w)的函数.如何测试if(x,z)==(u,w)?天真的方式是:

bool match = (x == u || x == v || x == w) && (y == u || y == v || y == w) && (z == u || z == v || z == w);

有没有人知道一些智能位 *** 作/算术做同样的事情?

编辑:我可以假设(x,z)或(u,w)都不包含重复项.

解决方法 在这种情况下,您可以通过按位运算替换逻辑运算以消除分支

bool match = (x == u | x == v | x == w)           & (y == u | y == v | y == w)           & (z == u | z == v | z == w);

但是,您必须测量性能效果以查看它是更快还是更慢.

总结

以上是内存溢出为你收集整理的c – 测试固定集是否相等而没有分支全部内容,希望文章能够帮你解决c – 测试固定集是否相等而没有分支所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存