NB6_Hazards/Hazard/Hazard/PrimImplikantCollection.cpp
Jonny007-MKD 3bf1e178a8 Changed destructor to Dispose()
Der der Destruktor auch aufgerufen wird, wenn eine lokale Instanz
gelöscht wird (z.B. in primImplikantenAt()), verlieren wir unsere
PrimImplikanten zu früh. Mit Dispose() können wir das selbst und nur
ganz am Ende machen.
2013-11-21 21:05:03 +01:00

78 lines
1.6 KiB
C++

//#include <iostream>
#include "stdafx.h"
#include <string>
#include <vector>
#include "PrimImplikantCollection.h"
using namespace std;
void PrimImplikantCollection::add(PrimImplikant* &PI)
{
PIVector.push_back(PI);
}
void PrimImplikantCollection::add(string input)
{
PrimImplikant* PI = new PrimImplikant(input);
PIVector.push_back(PI);
}
void PrimImplikantCollection::add(uint input)
{
PrimImplikant* PI = new PrimImplikant(input);
PIVector.push_back(PI);
}
void PrimImplikantCollection::add(uint input1, uint input2)
{
PrimImplikant* PI = new PrimImplikant(input1, input2);
PIVector.push_back(PI);
}
bool PrimImplikantCollection::valueAt(uint position)
{
for (vector<PrimImplikant*>::iterator i = PIVector.begin(); i < PIVector.end(); i++)
if ((*i)->valueAt(position))
return true;
return false;
}
PrimImplikantCollection PrimImplikantCollection::primImplikantenAt(uint position)
{
PrimImplikantCollection pic;
for (vector<PrimImplikant*>::iterator i = PIVector.begin(); i < PIVector.end(); i++)
if ((*i)->valueAt(position))
pic.add(*i);
return pic;
}
uint PrimImplikantCollection::size()
{
return this->PIVector.size();
}
PrimImplikant* PrimImplikantCollection::back()
{
return this->PIVector.back();
}
PrimImplikant* PrimImplikantCollection::front()
{
return this->PIVector.front();
}
PrimImplikant* PrimImplikantCollection::at(uint &index)
{
return this->PIVector.at(index);
}
PrimImplikant* PrimImplikantCollection::operator[](uint &index){
if (index < PIVector.size())
return this->PIVector.at(index);
return 0;
}
void PrimImplikantCollection::Dispose()
{
for (uint i = 0; i < this->size(); i++)
delete this->at(i);
}