我们如何将STL priority_queue用于struct?推送和弹出的任何插图,其中struct有多种数据类型?
说:struct thing { int a; char b;} glass[10];.
现在我如何使用'int a'将此结构放在priority_queue上进行排序?
我正在寻找一些简单实现的数据结构,它可以在最短的时间内完成我的需求(在最糟糕的情况下): -
(1)弹出第n个元素(我必须保持元素的相对顺序完整)
(2)访问第n个元素.
我无法使用数组,因为它不能弹出,我不想在删除ith元素后有一个间隙.我试图消除差距,通过将下一个元素与下一个元素交换到下一个直到最后,但这证明时间无效,尽管数组的O(1)是无与伦比的.
我尝试使用vector并使用'erase'进行弹出,使用'.at()'进行访问,但即使这对时间效率也不便宜,尽管它比数组更好.