Я пытаюсь реализовать вид стека, который имеет push (), pop (), getMaxSoFar ().Это должно быть выполнено o (1) раз.Тем не менее, я получил ошибку в push (значение T), и я не знаю, почему.В сообщении об ошибке говорится, что оператор "> =" не определен в типе T. Я просто хотел проверить код, поэтому я поставил тип int вместо того, чтобы он работал.
class FastMaxStack<T>
{
private Stack<T> stack;
private Stack<T> maxStack;
public FastMaxStack()
{
stack = new Stack();
maxStack = new Stack();
}
public void push(T value)
{
if(maxStack.isEmpty())
{
maxStack.push(value);
}
else if(value >= maxStack.peek())
{
maxStack.push(value);
}
stack.push(value);
}
public T pop()
{
maxStack.pop();
return stack.pop();
}
public T getMaxSoFar()
{
return maxStack.peek();
}
}