在我的 C++ 应用程序中,我有一个表格小部件,用于显示目录中的文件列表。有足够的屏幕空间一次显示约 20 个文件。它包裹在视口周围,因此用户可以上下滚动以导航到列表中的其他文件。
列表中的每个文件都包含缓存在后台线程中的任意大小的元数据。尝试缓存包含大量元数据丰富文件的目录中的所有文件会迅速占用堆上的可用内存,从而产生严重后果。
当然,我不需要一次缓存所有文件;只有那些可见的。如果缓存那些包含在视口边界上方/下方的元数据的文件也会很好,这样向上和向下滚动就不会产生太多延迟。
我想这与许多包含视口(Web 浏览器、文本/十六进制编辑器)的 UI 应用程序必须解决的问题有关。是否有任何模式、算法或容器(deque
想到)有助于解决这个问题?
谢谢!