Kendi sınıfım (NodeWithMin) öğesini, C++'da yığın için öğe olarak oluşturmaya çalışıyorum ve onu (StackWithMin) miras alarak yeni bir sınıf oluşturmaya çalışıyorum. Yeni yığın sınıfını oluşturmanın iyi bir şey olduğunu düşünüyorum, ancak bazı problemler yeni sınıfın yeni bir örneğini başlatıyor ve kullanıyor. Bununla ilgili iyi bir fikri olan var mı? Tüm sınıfları ve ana yazıyı tek bir dosyada yazdım. Teşekkürler.C++ Yığınları Sınıfta İçeren Öğelerle Yığınlama
#include <stack>
class NodeWithMin{
public:
int value;
int min;
NodeWithMin(int v, int min){
this->value = v;
this->min = min;
}
};
template<class NodeWithMin>
class StackWithMin : stack<NodeWithMin>{
public:
typedef stack<NodeWithMin> super;
void push(int value){
int newMin = min(value, this->min());
super::push(new NodeWithMin(value, newMin));
};
int min(){
if(this->isEmpty()){
return numeric_limits<int>::max();
}else{
super::peek().min;
}
};
};
int main(int argc, const char * argv[])
{
StackWithMin<class NodeWithMin>* ss;
ss = new StackWithMin<class NodeWithMin>();
}
Sadece kodunuzu CodeBlock 12.11, gcc 4.7 – David
ile başarıyla oluşturduğumu bildirin. Hangi sorunları yaşadığınız hakkında daha spesifik olabilir misiniz? Ne işe yaramıyor? Derleyici mesajları var mı? Çalışma zamanı hataları? –