理解 C 流中的运算顺序
C 流插入运算符 (
代码示例和问题:
考虑以下内容代码:
myQueue.enqueue('a'); myQueue.enqueue('b'); cout <p>此代码打印“ba”而不是预期的“ab”。同样,以下代码:</p><pre class="brush:php;toolbar:false">myQueue.enqueue('a'); myQueue.enqueue('b'); cout <p>打印“ab”而不是“ba”。</p><p><strong>原因:</strong></p><p>打印的顺序使用</p><p><strong>中间表示:</strong></p><p>编译器将</p><pre class="brush:php;toolbar:false">auto tmp1 = myQueue.dequeue(); auto tmp2 = myQueue.dequeue(); cout <p>编译器翻译</p><p><strong>未指定 tmp1 和 tmp2 的求值顺序。编译器可能会选择先计算 tmp1,然后计算 tmp2,反之亦然。</strong></p><p>后果:</p><p><strong>因为没有保证计算的顺序,所以使用的打印顺序</strong></p><p>结论:</p>当使用 时对于评估顺序未明确定义的队列或其他数据结构,了解不确定结果的可能性非常重要。为了确保可预测的打印,建议使用显式排序机制,例如单独的
以上是为什么使用队列时 C 流插入顺序很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!