我只是想知道寫一些代碼時彈出到腦海裏的東西。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)是相同的臨時表。 –