私はいくつかのコードを書いている間に私の心の中に飛び出したものについて疑問を抱いていました。このコードで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
++を使用すると、一時的なものを作成できるほどスマートです。アセンブリは明示的な一時的なものと同じ[https://godbolt.org/g/XVleS5]と[なし](https://godbolt.org/g/ecH5gI)であることに注意してください。 –