草庐IT

boolean_struct

全部标签

c++ - 从三个 boolean 值创建一个整数作为 C++ 中的位

我有三个代表位的bool值。我想在表单中有一个整数truetruetrue=7falsetruefalse=2我有intval=4*boolVal1+2*boolVal2+boolVal3;还有其他方法,也许更简单? 最佳答案 您可能会发现使用按位运算符而不是乘法和加法更清楚:intval=(boolVal1 关于c++-从三个boolean值创建一个整数作为C++中的位,我们在StackOverflow上找到一个类似的问题: https://stackove

c++ - 哪个更快? "vector of structs"还是 "a number of vectors"?

解决方案1:如果我有类似的类(class),classcar{public:inta;stringb;boolc;};我可以构建一个包含200辆汽车的vector:std::vectorallcas;allcars.resize(200)在运行时,我只是这样做:this_car=allcars[102];然后....解决方案2:我有std::vectora;a.resize(200);std::vectorb;b.resize(200);std::vectorc;c.resize(200);this_car_a=a[102];this_car_b=b[102];this_car_c=c

c++ - C 风格/C++ 正确性,struct/union/enum 标记是否与类型名称相同?

下面的MyStruct定义(标记MyStruct)和类型MyStruct的类型定义似乎完全可以被gcc(至少4.6.2)和g++编译。typedefstructMyStruct{inta;intb;}MyStruct;我的问题是:使用与类型名称相同的标签名称是否容易出错(在C和/或C++中)或风格不好?根据http://www.eetimes.com/discussion/programming-pointers/4024450/Tag-vs-Type-Names不是:I'veneverunderstoodwhytheyusedifferentnamesforthetagandthet

c++ - c++中的 boolean 乘法?

考虑以下几点:inlineunsignedintf1(constunsignedinti,constboolb){returnb?i:0;}inlineunsignedintf2(constunsignedinti,constboolb){returnb*i;}f2的语法更紧凑,但标准是否保证f1和f2严格等价?此外,如果我希望编译器在b和i在编译时已知的情况下优化此表达式,我应该更喜欢哪个版本? 最佳答案 嗯,是的,两者是等价的。bool是整数类型,true保证在整数上下文中转换为1,而false保证转换为0。(反之亦然,即非零整

c++ - 有人使用命名的 boolean 运算符吗?

或者我们都坚持我们教过的“&&、||、!”怎么办?对于我们为什么应该使用其中一个有什么想法吗?我只是想知道,因为有几个答案表明代码应该尽可能自然,但我没有看到很多带有“and,or,not”的代码,而这更自然。 最佳答案 我喜欢not运算符的想法,因为它比!运算符更明显。例如:if(!foo.bar()){...}if(notfoo.bar()){...}我建议第二个更明显和可读。不过,我认为同样的论点不一定适用于and和or形式。 关于c++-有人使用命名的boolean运算符吗?,我

c++ - 编译错误 "' struct' type redefinition"虽然它是它的第一个定义

一切都运行良好,直到我将一些代码从主文件移动到新类,然后出现以下错误:errorC2011:'color1':'struct'typeredefinitionstructcolor1{color1(){red=green=blue=0;}color1(float_red,float_green,float_blue){red=_red;green=_green;blue=_blue;}floatred,green,blue;};有什么想法吗? 最佳答案 如果编译器说它被重新定义了,那么它可能是。我的心理调试技能告诉我,您将结构从源文

c++ - 在多线程 C++ 应用程序中,我是否需要互斥锁来保护简单的 boolean 值?

我有一个多线程C++应用程序,它使用OpenSceneGraph库进行3D渲染。我计划使用boost::threads将OSG的渲染循环作为一个单独的线程启动,将包含共享状态的数据结构传递给线程。我试图避免任何过于重量级的东西(如互斥锁)进行同步,因为渲染循环需要非常紧凑,而OSG本身试图避免不得不锁定。大多数共享状态是在线程启动之前设置的,并且永远不会改变。我确实有一些需要更改的数据,我计划对其进行双重缓冲。但是,我有一个简单的boolean值,用于指示线程暂停渲染,然后恢复渲染,另一个用于终止它。在这两种情况下,应用程序线程都会设置boolean值,而渲染线程只读取它。我需要同步对

c++ - C++ 中 struct typedef struct 的用途

在C++中可以创建一个结构:structMyStruct{...}还可以做以下事情:typedefstruct{...}MyStruct;但据我所知,两者之间没有明显的区别。哪个更可取?如果没有区别,为什么两种方式都存在?哪一种在风格或可读性上比另一种更好? 最佳答案 以下是两个声明/定义之间的区别:1)YoucannotuseatypedefnametoidentifyaconstructororadestructorstructMyStruct{MyStruct();~MyStruct();};//oktypedefstruct

c++ - 链接 boolean 值给出与预期相反的结果

我不假思索地编写了一些代码来检查结构的所有值是否都设置为0。为此我使用了:boolIsValid(){return!(0==year==month==day==hour==minute==second);}其中所有结构成员都是无符号短类型。我将代码用作更大测试的一部分,但注意到它对于不为零的值返回false,对于所有等于零的值返回true-与我的预期相反。我把代码改成了:boolIsValid(){return(0!=year)||(0!=month)||(0!=day)||(0!=hour)||(0!=minute)||(0!=second);}但想知道是什么导致了奇怪的行为。是优先

c++ - boolean 值的排序

在C++或下从C99开始,小于运算符怎么样?为boolean值定义?或者,解释这段代码的行为:#ifndef__cplusplus#include#endif#includeintmain(){boolb=-1;if(b在MSVC10版下,编译为C++代码,GCC4.6.3-ubuntu5编译为C代码,G++4.6.3-1ubuntu5编译为C++代码,你得到的只是false即下面的不等式都是false:(bool)-1下面是true:false 最佳答案 在C++中(我也怀疑在C中),bools比较就像false是0和true是1