1
스택의 최소 요소를 추적하기 위해 minStack 클래스를 구현하려고합니다. 내 코드는 다음과 같습니다. 원래 스택을 업데이트해야하기 때문에 기본 클래스 Stack의 포인터를 사용하려고했으나 기본 클래스의 멤버 대신 기본 클래스의 포인터이므로 호출 방법을 모르겠습니다. 위해 컨테이너에서 일반적으로 하나가 도출하지 것 : 조언C++에서 기본 클래스의 포인터를 얻는 방법
int pop()
{
if (Stack::pop() == min()) { minS->pop(); }
}
void push(int item)
{
if (item <= min())
{
minS->push(item);
}
Stack::push(item);
}
관련이없는 조각 : 당신은 기본 클래스의 함수를 호출 할 Stack::pop()
및 Stack::push()
를 호출 할 수 있습니다
class minStack: public Stack{
private:
Stack* minS;
public:
int min()const{
if(minS->top)
return minS->top->data;
return -1;
}
minStack(){
minS = new Stack();
}
int pop(){
if (Stack::this->pop == min()) { //question here!
minS->pop();
}
}
void push(int item){
if(item <= min()){
minS->push(item);
}
Stack::this->push(); //question here!
}
};