关于STL数据结构的建议

Har*_*ish 2 c++ algorithm stl

我正在实现一个显示算法,我们可以根据它们的z顺序有多个窗口层,即我从最后一个z值开始并合并图像,直到我们在顶部有z值为0的图像.要保持z值,您建议使用哪种数据结构?

例如:如果z顺序是2 3 4 5 1 6 7 8 9 10(应用程序的索引),并且如果用户单击了应用程序5的窗口,那么我们需要将5移动到前面,剩下的顺序应该是是相同的,即5 2 3 4 1 6 7 8 9 10.

如果我使用矢量,那么每次重新排列元素(或复制值)似乎并不高效.如果我使用deque,那么push_front有一些明显的优势,但再次将Application从其先前的位置移除是问题所在.如果我使用list,那么每次我们需要搜索元素并将其删除.有关哪种数据结构对我的目的最有效的想法?

Dav*_*eas 5

鉴于窗口的数量可能是最小的,我可能会使用(智能)指针向量,并重新排序矢量组件.虽然复杂性高于其他替代方案,但实际性能并不差,因为常量可能会主导复杂性.