我只是想知道写一些代码时弹出到脑海里的东西。if/else-if语句如何处理?
for (int i = 0; i < num_bits; i++) {
if (bits.at(i) == 0) {
}
else if (bits.at(i) == 1) {
}
}
在此代码,bits
是一个字符串,num_bits
是字符串的长度。
在这种情况下,程序是否会在if
和`else if`处运行string.at(i)
,或者它会运行一次,然后将其存储在某处并在两个语句中使用它?我不知道这个问题是否足够清楚,但谢谢任何答案。
谢谢,那是我最初的想法。你认为将字符串转换为char数组或类似的东西会更有效率,而不是始终调用函数吗? – user2851949
首先将值存储到变量并与变量进行比较,您只需调用一次该方法。或者你可以在-O1或更高版本上使用位[i] – Hampus
g ++,它足够聪明,可以为你创建临时文件。请注意,程序集与[(])(https://godbolt.org/g/XVleS5)和[without](https://godbolt.org/g/ecH5gI)是相同的临时表。 –