本文整理汇总了C++中Pile::pop方法的典型用法代码示例。如果您正苦于以下问题:C++ Pile::pop方法的具体用法?C++ Pile::pop怎么用?C++ Pile::pop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pile
的用法示例。
在下文中一共展示了Pile::pop方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
Pile<T>& Pile<T>::pileResultat() const{
Pile<T> p = this->clone();
Pile<T> res;
for(int i=0;i<p.size();i++) {
if(p.at(i).isOperateur()) {
if(p.at(i).isBinaire()) {
p.DROP();
p.DROP();
p.DROP();
}
else { // unaire
p.DROP();
p.DROP();
}
}
else {
res.addPile(p.pop());
}
}
delete p;
Pile<T>& ref = res;
return ref;
}
示例2: fabriquer
// fabrique soit une constante soit un opérateur (et l'éxécute).
void Calculatrice::fabriquer(const QString& text, enumType type) const {
Pile* p = &Pile::getInstance();
PileAffichage* pA = &PileAffichage::getInstance();
switch (type) {
case ENTIER:{
Constante* res = new Entier(text.toInt());
p->push(res);
// ajout log dans le fichier de log
LogSystem::add("Push dans la pile : " + res->toString(),FAIBLE);
// on push dans la pile d'affichage
pA->push(text);
break;
}
case REEL:{
Constante* res = new Reel(text.toDouble());
p->push(res);
// ajout log dans le fichier de log
LogSystem::add("Push dans la pile : " + res->toString(),FAIBLE);
// on push dans la pile d'affichage
pA->push(text);
break;
}
case RATIONNEL:{
// séparation num / den
QStringList tmp = text.split("/");
Constante* res = new Rationnel(tmp.value(0).toInt(), tmp.value(1).toInt());
p->push(res);
// ajout log dans le fichier de log
LogSystem::add("Push dans la pile : " + res->toString(),FAIBLE);
// on push dans la pile d'affichage
pA->push(text);
break;
}
case COMPLEXE:{
// séparation re $ im
QStringList tmp = text.split("$");
// push la partie réelle du complexe
if (this->isEntier(tmp.value(0))) {
this->fabriquer(tmp.value(0),ENTIER);
} else if (this->isReel(tmp.value(0))) {
this->fabriquer(tmp.value(0),REEL);
} else if (this->isRationnel(tmp.value(0))) {
this->fabriquer(tmp.value(0),RATIONNEL);
}
// push la partie imaginaire du complexe
if (this->isEntier(tmp.value(1))) {
this->fabriquer(tmp.value(1),ENTIER);
} else if (this->isReel(tmp.value(1))) {
this->fabriquer(tmp.value(1),REEL);
} else if (this->isRationnel(tmp.value(1))) {
this->fabriquer(tmp.value(1),RATIONNEL);
}
// pop les deux parties
const NonComplexe* c1 = dynamic_cast<const NonComplexe*>(p->pop());
const NonComplexe* c2 = dynamic_cast<const NonComplexe*>(p->pop());
// construction du complexe et push.
Complexe* res = new Complexe(*c2, *c1);
p->push(res);
// ajout log dans le fichier de log
LogSystem::add("Push dans la pile : " + res->toString(),FAIBLE);
// on push dans la pile d'affichage
pA->push(text);
break;
}
case OPERATEUR:{
Operateur* res = new Operateur(text);
// ajout log dans le fichier de log
LogSystem::add("Traitement opération : " + text,FAIBLE);
// on push dans la pile d'affichage
pA->push(text);
res->effectuerOperation();
break;
}
case EXPRESSION:{
QString tmp(text);
tmp.replace(QString("'"), QString(""));
//.........这里部分代码省略.........