草庐IT

or-Operator

全部标签

c++ - C++ 中 'and' 、 'or' 等关键字的用途是什么?

以下关键字的用途是什么?andbitandcomplnot_eqor_eqxor_eqand_eqbitornotorxor如果它们都是直接等同于:&&&~!=|=^=&=|!||^ 最佳答案 http://en.wikipedia.org/wiki/Iso646.hiso646.h"...定义了一些宏,允许程序员使用C语言的按位和逻辑运算符,如果没有头文件,在某些国际和非QWERTY键盘上无法快速或轻松地键入这些宏键盘。文件名指的是ISO646标准,这是一个7位字符集,有许多区域变化,其中一些用重音字符代替C运算符使用的标点符号。

c++ - "invalid comparator": error when overloading the "<" operator

我有一个类需要排序。使用此类的vector,排序时出现“无效比较器”错误。我在我的类中重载了“遵循严格的弱排序。如本post所述.sort需要严格的弱排序。你的comparator不是一个。除其他事项外,对于严格的弱排序,comp(x,x)必须为false。这是我的代码:booloutlierScore::operator这是重载的运算符函数,它所做的本质上是尝试按离群值分数升序排序,核心距离用于打破离群值关系,以及用于打破核心距离关系的ID。StackTrace揭示了这个阶段出现的错误。templateconstexprbool_Debug_lt_pred(_Pr&&_Pred,_T

c++ - 与零长度参数一起使用的 memset : ignore or watch out?

在链接动态库时,我无法找到有关以下警告的任何信息:Infunction`MyClass::myfunc()':MyClass.cpp:(.text+0x14e4):warning:memsetusedwithconstantzerolengthparameter;thiscouldbeduetotransposedparameters这是myfunc的摘录:voidMyClass::myfunc(){vector::const_iteratorit;for(it=m_vars.begin();it!=m_vars.end();++it){if((*it)->recordme){MyRe

c++ - "not, and, or, not_eq.."是 C++ 标准的一部分吗? (以及为什么可以在代码中使用或避免使用它们?)

所以它看起来像所有这些:http://www.cplusplus.com/reference/clibrary/ciso646/是c++中的关键字。我的问题是。这是c++标准的一部分吗?我可以依赖主要编译器的支持吗?我知道gcc确实支持这些关键字。最后,也许这更像是一个偏好或风格问题,但与标准运算符(!、!=、&&...等)相比,使用关键字是否有任何优势? 最佳答案 Myquestionis.Isthisapartofthec++standard?是的。CanIrelyonthistobesupportedbymajorcompil

c++ - getline 和 std::istream::operator>>() 有什么区别?

#include#includeusingnamespacestd;intmain(){stringusername;cout>username;}所以我很好奇这两个代码之间有什么区别,我听说这是同一件事,但如果是,那为什么要用两种方法呢?#include#includeusingnamespacestd;intmain(){stringusername;cout 最佳答案 区别在于std::getline—顾名思义—从给定的输入流(可能是std::cin)和operator>>中读取行读一个单词1。即std::getline读取直

c++ - 标准 C 函数 : Check for -1 or 0?

许多标准的C和POSIX函数在错误时返回-1,在成功时返回0,例如truncate,fflush,msync等intret=truncate("/some/file",42);使用ret!=-1或ret==0检查是否成功更好,为什么?我的想法根据我的经验,大多数人会检查错误情况(ret!=-1),因为通常只有一个(考虑返回NULL或的函数>EOF错误)。然而事后看来,这些函数可以从直接返回errno中获益(其中0被认为没有错误)。还有一个担心是函数返回的不是0或-1,或者稍后添加了额外的返回值。在这些情况下,测试指示成功的“最严格”值范围是有意义的(ret==0)。更新0我的假设是人们

c++ - 错误 C2582 : 'operator =' function is unavailable in 'B'

以下代码给出了main()中行“e=f”的编译错误(至少在使用MSVS2008时):errorC2582:'operator='functionisunavailablein'B'classA{public:A(){}staticconstdoublex;};constdoubleA::x=0.0;classB{public:B():x(0.0){}constdoublex;};intmain(intargc,char*argv[]){Ac,d;Be,f;c=d;e=f;return0;}应该为A和B这两个类生成默认赋值运算符!?in12.8.10:"Iftheclassdefinit

c++ - 为什么 operator= 返回引用而不是 const 引用

最初的问题与重载operator=有关,我想分享我的发现,因为找到它们对我来说很重要。我无法想象将(a=b)用作左值的合理示例。在IRC和谷歌的帮助下,我找到了下一篇文章:http://msdn.microsoft.com/en-us/magazine/cc301415.aspx它提供了两个示例。(a=b)=cf(T&);f(a=b)但两者都不太好,我认为这是不好的做法。第二个给我同样的感觉。您能否提供更多好的示例,说明为什么它应该是非常量? 最佳答案 一个很好的理由是标准中要求类X在标准容器中可用的要求之一是表达式a=b必须具有类

c# - 用于创建 DLL : C++ or C# 的编程语言

这不是编程问题!我要为某个应用程序编写一个DLL。我有两个选项可供选择:C++或C#我应该用哪种语言编写DLL?这会影响功能吗?我是一个完全的新手,不知道C++和C#(但C#中的一些小程序)。用C++或C#编写DLL的优缺点是什么?非常感谢您的宝贵时间!问候,斯瓦南德! 最佳答案 DLL最好用C编写:)让我解释一下:DLL是在C++进入主流使用之前构思出来的。它们是为C语言创建的。您可以使用C++编写DLL,但您只能从使用与DLL相同版本的相同编译器编写的应用程序中轻松使用它们。CDLL可以从.NET中使用,这与C++不同(是的,我

c++ - operator << - 如何检测最后一个参数

我正在用C++编写一个日志类。这个类是一个单例。我想以这种方式添加日志:Log::GetInstance()好的,在一个Log对象中,我想在最后一个参数出现时保存整行(本例中为“在类foo”中)。如何检测最后一个我不使用任何结束标签。 最佳答案 你可以通过不使用单例来解决这个问题。如果您创建这样的函数:Loglog(){returnLog();}您几乎可以像以前一样添加日志:log()不同之处在于Log对象的析构函数在此行之后被调用。所以现在您有办法检测最后一个参数何时被处理。 关于c+