C++ 迭代器和循环引用的容器

发布于 2024-07-27 15:52:19 字数 1460 浏览 7 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

删除→记忆 2024-08-03 15:52:20

如果您使用 deque 而不是 queue,则此方法有效。 Queue 不是一个容器,而是一个外观,因此它不支持 ::iterator 调用。

来自 cplusplus.com

队列被实现为容器适配器,它们是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问它的元素。 元素被推入特定容器的“后面”并从其“前面”弹出。

This works if you use a deque instead of a queue. Queue is not a container, but a facade so it does not support the ::iterator call.

From cplusplus.com:

queues are implemented as containers adaptors, which are classes that use an encapsulated object of a specific container class as its underlying container, providing a specific set of member functions to access it elements. Elements are pushed into the "back" of the specific container and popped from its "front".

自由如风 2024-08-03 15:52:20

存储迭代器时应该非常小心。 修改集合很容易使所有迭代器失效。 你最好存储一个 id 或一个(托管)指针。

You should be very careful about storing iterators. Modifying the collection can easily invalidate all iterators. You would be far better storing an id or a (managed) pointer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文