我有一个向量,希望在任何时候都对元素进行排序。当我插入一个元素并在弹出它们时保持元素排序,应该如何处理?我查看了
例如,这就是我想要的:当我弹出向量中的所有元素时,它应该是 1 2 3 4 5。这意味着向量必须将它们存储为 5 4 3 2 1。如果使用 lower bound,则向量将它们存储为 1 2 3 4 5,并且弹出为 5 4 3 2 1。此外,将传递一个比较函数,以便
std::lower_bound
,但那与我想要的相反。例如,这就是我想要的:当我弹出向量中的所有元素时,它应该是 1 2 3 4 5。这意味着向量必须将它们存储为 5 4 3 2 1。如果使用 lower bound,则向量将它们存储为 1 2 3 4 5,并且弹出为 5 4 3 2 1。此外,将传递一个比较函数,以便
lower_bound
函数使用比较函数。是否有一种方法可以取反比较函数?
std::set
会使元素保持排序,但不能有重复元素(参见std::multiset
)。至于取反,则可以使用std::not1
。 - chris