首页 > 后端开发 > C++ > 为什么使用队列时 C 流插入顺序很重要?

为什么使用队列时 C 流插入顺序很重要?

DDD
发布: 2024-12-18 19:20:11
原创
130 人浏览过

Why Does C   Stream Insertion Order Matter When Using Queues?

理解 C 流中的运算顺序

C 流插入运算符 (

代码示例和问题:

考虑以下内容代码:

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue() << myQueue.dequeue();
登录后复制

此代码打印“ba”而不是预期的“ab”。同样,以下代码:

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue();
cout << myQueue.dequeue();
登录后复制

打印“ab”而不是“ba”。

原因:

打印的顺序使用

中间表示:

编译器将

auto tmp1 = myQueue.dequeue();
auto tmp2 = myQueue.dequeue();
cout << tmp1 << tmp2;
登录后复制

编译器翻译

未指定 tmp1 和 tmp2 的求值顺序。编译器可能会选择先计算 tmp1,然后计算 tmp2,反之亦然。

后果:

因为没有保证计算的顺序,所以使用的打印顺序

结论:

当使用 时对于评估顺序未明确定义的队列或其他数据结构,了解不确定结果的可能性非常重要。为了确保可预测的打印,建议使用显式排序机制,例如单独的

以上是为什么使用队列时 C 流插入顺序很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板