void Manager::vectorsDifference(QVector<Data*> *vectorFirst, QVector<Data*> *vectorSecond, QVector<Data*> *vectorOutput)
{
QVector<Data*>::iterator itFirst;
QVector<Data*>::iterator itSet;
QVector<Data*>::iterator itDel;
QVector<Data*> vDeleted;
int iVec;
for(itFirst = vectorFirst->begin(); itFirst != vectorFirst->end(); itFirst++)
{
vectorOutput->push_back(*itFirst);
}
for(itSet = vectorOutput->begin(); itSet != vectorOutput->end(); itSet++)
{
for(iVec = 0; iVec != vectorSecond->size() - 1; iVec++)
{
if ((*itSet)->x == vectorSecond->at(iVec)->x &&
(*itSet)->y == vectorSecond->at(iVec)->y )
{
vDeleted.push_back(*itSet);
vectorOutput->erase(itSet);
}
}
for(itDel = vDeleted.begin(); itDel != vDeleted.end(); itDel++)
{
if( (*itSet)->x == (*itDel)->x &&
(*itSet)->y == (*itDel)->y)
{
vectorOutput->erase(itSet);
}
}
}
}
class Data
{
public:
qString x,y;
}
pseudocode:
QVector First
{ {a,a
},
{a,b
},
{b,a
} } QVector Second
{ {a,a
},
{a,c
},
{a,b
},
{a,a
} } What I want:
void Manager::vectorsDifference(QVector<Data*> *vectorFirst, QVector<Data*> *vectorSecond, QVector<Data*> *vectorOutput)
{
QVector<Data*>::iterator itFirst;
QVector<Data*>::iterator itSet;
QVector<Data*>::iterator itDel;
QVector<Data*> vDeleted;
int iVec;
for(itFirst = vectorFirst->begin(); itFirst != vectorFirst->end(); itFirst++)
{
vectorOutput->push_back(*itFirst);
}
for(itSet = vectorOutput->begin(); itSet != vectorOutput->end(); itSet++)
{
for(iVec = 0; iVec != vectorSecond->size() - 1; iVec++)
{
if ((*itSet)->x == vectorSecond->at(iVec)->x &&
(*itSet)->y == vectorSecond->at(iVec)->y )
{
vDeleted.push_back(*itSet);
vectorOutput->erase(itSet);
}
}
for(itDel = vDeleted.begin(); itDel != vDeleted.end(); itDel++)
{
if( (*itSet)->x == (*itDel)->x &&
(*itSet)->y == (*itDel)->y)
{
vectorOutput->erase(itSet);
}
}
}
}
class Data
{
public:
qString x,y;
}
pseudocode:
QVector First { {a,a}, {a,b}, {b,a} }
QVector Second { {a,a}, {a,c}, {a,b}, {a,a} }
What I want:
QVector output { {b,a} }
To copy to clipboard, switch view to plain text mode
Description:
Bookmarks