草庐IT

fulltext-boolean

全部标签

c++ - boolean 类型操作

这段代码#includeusingnamespacestd;intmain(){boolt=false;cout显示这样的错误invalidoperandsoftypes'bool'and''tobinary'operator怎么了?我不明白这个,请向我解释一下。我认为&&和!是在c++中定义的。怎么了? 最佳答案 "invalidoperandsoftypes'bool'and''tobinary'operator这意味着第二个运算符正在尝试在(!t)和“endl”上执行。优先级高于&&所以你的cout语句像这样执行:(cout添

c++ - double not (!!) 用于非 boolean 变量有什么作用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DoubleNegationinC++code.我正在处理生产代码,我在其中遇到过几次这样的语句:Class.func(!!notABool);前几次我认为它是程序员的怪癖(也许是为了强调它是一个条件语句而不是传递给func的数字?)但我遇到过几个语句使用上面的内容,现在我想知道它是否真的有所作为。在大多数情况下,notABool是一个数字(int、float、double...我已经看到了所有3个)我最初的猜测是它类似于打字:Class.func((bool)notABool);但我不完全确定?

C++ 设计 : functions with boolean options

我有一个关于C++中“良好设计实践”的问题。我正在用C++11编写一个数字库,我使用了很多元编程和基于模板的技术。但我有一个非常基本的问题:考虑一个函数,它可以有两个非常接近的行为,除了一个可以由boolean标志激活的选项。我只考虑一个可以由开发人员设置/取消设置的标志,而不是一个可以在运行时设置/取消设置的标志。设计有3种可能性:1)编写两个在名称中带有显式选项的函数:myFunctionFlag1(...);myFunctionFlag2(...);2)使用模板参数:templatemyFunction(...);3)使用可变参数:myFunction(...,constbool

c++ - 赋值运算符的 boolean 和字符串重载 (C++)

我正在定义赋值运算符的多个重载,如下所示:Foo.hclassFoo{private:boolmy_bool;intmy_int;std::stringmy_string;public:Foo&operator=(boolvalue);Foo&operator=(intvalue);Foo&operator=(conststd::string&value);};Foo.cpp//AssignmentOperators.Foo&Foo::operator=(boolvalue){my_bool=value;return*this;}Foo&Foo::operator=(intvalue)

c++ - 未初始化的 boolean 变量不一致

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhydoIseestrangevalueswhenIprintuninitializedvariables?Funwithuninitializedvariablesandcompiler(GCC)我想知道我在解决代码问题时遇到的一个神秘问题。生产中的代码有一个未初始化的boolean变量,库正在检查这个boolean值。在LIVE站点中,此变量始终表现为TRUE开发环境中的相同代码始终表现为FALSE。我知道,由于LIVE和DEV之间的环境差异,未初始化的bool变量可能具有未定义的值。但这是我的问题。如

c++ - 为什么 ~(true^true) 不是真的? boolean 运算符(否定)适用于 `unsigned char` s,但不适用于 boolean 值? (C++)

我听说通常除了0之外的“一切”都是真的。但是现在我身上发生了非常奇怪的事情……或者我只是认为我以正确的方式做事,而我却没有。这是正在发生的事情:当我想检查a是否等价于b时,我可以使用NOT(aXORb)。当我检查unsignedchar时,一切正常,例如unsignedchara=5;unsignedcharb=3;unsignedcharc=~(a^b);给我c==249:a是:00000101,也就是5。b是:00000011,也就是3。~(a^b)是:11111001,即249。现在,让我们用bool来试试这个。cout这让我在控制台中:-1-2-2-10110false虽然我希

c++ - 二元 boolean 运算符是否具有结合性?

语言定义的a&&b&&c是指(a&&b)&&c还是a&&(b&&c)?哇,Jerry真快。为了加强这个问题:它真的重要吗?a&&b&&c被解释为(a&&b)&&c或a&&(b&&c)之间会有明显的区别吗>? 最佳答案 §5.14/1:“&&运算符从左到右分组。[...]与&不同,&&保证从左到右评估:如果第一个操作数为假,则不评估第二个操作数。”至于何时或如何重要:我不确定它是否真的适用于内置类型。但是,有可能以使其变得重要的方式重载它。例如:#includeclassA;classM{intx;public:M(intx):x(x

c++ - 数组 C++ 中每个 boolean 值 1 位

boolfp[81];根据我的理解,fp应该使用ceil(81/8)字节,因为它是连续的。我说的对吗?我怎样才能证明这一点? 最佳答案 不,缓冲区的大小是实现定义的。请引用以下标准中的引述。因此,您可以期望的大小是81*X,其中X是bool的大小,它是实现定义的。$5.3.3/1-“sizeof运算符产生其操作数的对象表示中的字节数。操作数是一个未计算的表达式,或者是带括号的类型ID。sizeof运算符不应应用于具有函数或不完整类型的表达式,或在声明其所有枚举数之前应用于枚举类型,或应用于此类类型的括号名称,或应用于指定的左值一个位

c++ - boolean 运算符++和——

今天,在编写一些VisualC++代码时,我遇到了一些让我感到惊讶的事情。似乎C++支持bool的++(递增),但不支持--(递减)。这只是一个随意的决定,还是背后有某种原因?编译:staticHMODULEhMod=NULL;staticboolonce=false;if(!once++)hMod=LoadLibrary("xxx");这不是:staticHMODULEhMod=NULL;staticboolonce=true;if(once--)hMod=LoadLibrary("xxx"); 最佳答案 它来自使用整数值作为bo

c++ - 矩形多边形的 boolean 运算

Avast各位程序员!我有以下问题:我有两个矩形重叠,如下图所示。我想找出由点ABCDEF组成的多边形。替代的圣诞节描述:红色曲奇刀正在切掉一点黑色曲奇。我要计算黑cookies。每个矩形都是一个具有4个2d顶点的数据结构。实现此目标的最佳算法是什么? 最佳答案 这是一般二维多边形裁剪的特例。Weiler-Atherton算法是一个不错的起点。Wikipediahasasummary和linkstotheoriginalpaper.该算法似乎与您描述的数据结构非常匹配。请注意,您很可能最终会得到一个带有孔的矩形(如果红色完全在黑色内