c++ - 延迟插入/删除

标签 c++ lazy-evaluation

我有一项任务是编辑优先级队列并实现(除其他事项外)插入功能。尽管我的书提到了“懒惰删除”和其他懒惰操作,但它从未具体说明“懒惰”的实际含义。

简而言之: 插入/删除函数和 LAZY 插入/删除函数有什么区别?

最佳答案

“惰性删除”通常是指标记删除的内容而不是直接删除它,并修改其他操作以假装标记的项不存在。

例如,在优先队列的情况下,您可以跳过出队过程中已删除的项目,而不是主动从中间删除它们,这更难。

类似地,“惰性插入”可能会将元素添加到输入队列中,这是一个常量时间操作。通常插入优先级队列需要 O(log n) 时间。尝试出列时,输入队列将被刷新到优先级队列中。这将具有减轻插入操作成本直到出列操作的效果。

基本上“惰性”意味着直到需要结果时才进行操作。

关于c++ - 延迟插入/删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936195/

相关文章:

c++ - INT 在 FOR 循环外保持不变

c++ - 与排序模型一起使用时的 Qt TreeView 问题

python - 尝试在 Python 中实现惰性分区时感觉很愚蠢

python - 如何避免在 python 中作为参数传递时进行惰性属性评估

c++ - 是否可以定义稍后可以评估的 bool 表达式?

java - 表示包安装和系统依赖关系的最佳数据结构

C++ chrono - 将持续时间作为 float 或 long long

c++ - 如何裁剪带有与源图像边界重叠的矩形的开放式 CV 矩阵

performance - F# 中嵌套序列涉及的开销

java - Java 中惰性线程安全单例实例化的模式