草庐IT

something_else

全部标签

c++ - 是否可以将每个 if-else 结构替换为等效的条件表达式?

(我不是很需要这个答案,我只是好奇。)是否可以使用条件运算符?:将每个if-else结构替换为等效的条件表达式? 最佳答案 Doeseveryif-elseconstructscanbereplacedbyanequivalentconditionalexpressionusingconditionaloperator?不,你问反了。if/else的“主体”包含语句,不可能将每条语句都变成一个表达式,比如try、while、break语句,以及声明。然而,许多“声明”实际上是变相的表达:++i;blah=42;some_method

c++ - 这个 if-else 语句可以更简洁吗

我正在尝试改进C++赋值以使其更高效。我是该语言的初学者(一般来说也是编程),所以我只使用我目前所知道的(如果,否则)。我有一个将分数转换为水平的函数,所以任何低于30=1、30-49=2、50-79=3的东西......这是我的做法:if(score1是否有更好的方法来执行此操作,因为我知道这将需要为我的每个分数换行。 最佳答案 这取决于您所说的效率。您可以将每个级别的限制保存在一个数组中intlevel_limits[]={0,30,49,79,[...]};intgetLevel(intscore){intlevel;for(

c++ - else 语句似乎被忽略

voidPacketRecord::determineAppProtocol(){if(ipProtocol==IP_PROTO_UDP){std::istringstreamss(udpData);std::stringline;if(getline(ss,line)&&(line.find("SIP/2.0")!=std::string::npos)){appProtocol=APP_PROTO_SIP;}else{appProtocol==APP_PROTO_RTP;}}else{appProtocol=APP_PROTO_UNKNOWN;}}如果内部if语句无法评估为真,我希望

c++ - 开关盒 vs if else

这个问题在这里已经有了答案:Advantageofswitchoverif-elsestatement(23个回答)关闭9年前。我想知道下面的代码编译成汇编的方式是否有什么不同。我听说switch-case比ifelse更有效,但在这个例子中我不太确定情况是否如此。if(x==1){...}elseif(x==2){...}else{...}和switch(x){case1:...break;case2:...break;default:...}

c++ - C中If-Else和三元运算符之间的速度差异...?

所以在一位同事的建议下,我刚刚测试了三元运算符和等效的If-Elseblock之间的速度差异......似乎三元运算符产生的代码比If-快1到2倍别的。我的代码是:gettimeofday(&tv3,0);for(i=0;i(抱歉使用了gettimeofday而不是clock_gettime...我会努力提高自己。)我尝试更改block的计时顺序,但结果似乎仍然存在。是什么赋予了?此外,If-Else在执行速度方面表现出更多的可变性。我应该检查gcc生成的程序集吗?顺便说一句,这都是在优化级别零(-O0)下进行的。这是我的想象,还是有什么我没有考虑到的东西,或者这是一个依赖于机器的东西

c++ - 为什么使用预处理器 #if 语句而不是 if() else?

我看到这一直在做,例如在Linux内核中。使用预处理器命令与仅使用普通C++ifelseblock的目的是什么?有没有速度优势之类的? 最佳答案 预处理器在C/C++代码编译之前更改它(因此是预处理器)。预处理器ifs在编译时求值。C/C++ifs在运行时求值。您可以完成在运行时无法完成的事情。针对不同平台或不同编译器调整代码:#ifdef__unix__/*__unix__isusuallydefinedbycompilerstargetingUnixsystems*/#include#elifdefined_WIN32/*_Wi

c++ - 有if-else,有没有Neither Nor语句?

有没有neitherAnorB语法? 最佳答案 哦......你想要“不是”关键字?VBaddsAin'tKeyword(Newswire8-19-2004)MicrosofthasannouncedthatVisualBasicwilladdthe"Ain't"keywordtothelanguage.AccordingtoasourceontheVB.NETteam"WithVB,wewantthelanguagetoworkthewayyouthink.Extensiveusabilitystudieshavedemonstr

c++ - 如何重构这个结构,if-else-if-else-if * 100

有一些讨厌的遗留代码。std::stringxxx=GetCommand();//get"CommandX";if(xxx=="Command1"){returnnewCommand1();}elseif(xxx=="Command2"){returnnewCommand2();}...elseif(xxx=="Command100"){returnnewCommand100();}我想改进这个代码结构。有太多的比较。所以我把它们放到map上。for(inti=0;i但是如果有新的命令,这种方式每次都必须做额外的功能。是的,功能可能是合理的。但是所有的函数都是returnnewComm

Windows 'dir' 命令,按名称排序和 <something>

我们可以在Windows资源管理器中看到按名称排序的目录文件。如果我在Windows命令提示符下尝试相同的操作,它按不同的名称排序-正确:dir*.jpg/ON/Bcubierta.jpgpag00.jpgpag06.jpgpag08.jpgpag09.jpgpag100.jpgpag101.jpgpag102.jpgpag103.jpgpag104.jpgpag105.jpgpag106.jpgpag107.jpgpag108.jpgpag109.jpgpag11.jpg,etc,etc,etc,...有没有办法让dir按名称排序,它会像人类一样读取数字?

windows - 为什么我的 if Else if 语句在批处理脚本中不起作用?

我的脚本echo"Enteryourchoice(1or2or3):"set/pdbchoice=IF%dbchoiceEQU1(setdbtype="oracle")ELSE(IF%dbchoiceEQU2(setdbtype="sqlserver"))ELSE(IF%dbchoiceEQU3(setdbtype="db2"))ELSE(echo"Incorrectchoice")我得到以下输出:E:\csmilm>set/pdbchoice=1ELSEwasunexpectedatthistime.E:\csmilm>)ELSE(E:\csmilm>这里有什么问题?