本文整理汇总了C++中Pile::push方法的典型用法代码示例。如果您正苦于以下问题:C++ Pile::push方法的具体用法?C++ Pile::push怎么用?C++ Pile::push使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pile
的用法示例。
在下文中一共展示了Pile::push方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: copierDans
void Pile::copierDans(Pile& P) const
{
for(int i = 0; i<taille; i++) // On parcours dans l'ordre d'ajout du plus vieux au plus récent
{
P.push(*litteraux[i]);
}
}
示例2: push
void Computer::push(Litteral& L)
{
pushHistorique(*pileActuelle, true);
Pile *newP = new Pile(*pileActuelle);
newP->push(L);
pileActuelle = newP;
}
示例3: clone
//############# OPERATION ##################
void Pile::clone(Pile & p) const{
for(int i = 0; i<this->size(); i++){
Constante * c = this->at(i);
if(typeid(*c) ==typeid(CEntier)){
p.push((Constante * )new CEntier(*((CEntier*) c)));
}else if(typeid(*c) ==typeid(CRationnel)){
p.push((Constante * )new CRationnel(*((CRationnel*) c)));
}else if(typeid(*c) ==typeid(CReel)){
p.push((Constante * )new CReel(*((CReel*) c)));
}else if(typeid(*c) ==typeid(CComplexe)){
p.push((Constante * )new CComplexe(*((CComplexe*) c)));
}else if(typeid(*c) ==typeid(CExpression)){
p.push((Constante * ) new CExpression(*((CExpression*) c)));
}
}
}
示例4: Pile
Pile<T>& Pile<T>::clone(){
Pile *copy = new Pile();
for(unsigned int i = 0 ; i < this->size() ; ++i){
T *temp = *this->value(i)->clone();
copy->push(*temp);
}
return ©
}
示例5: 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(""));
//.........这里部分代码省略.........