Реализация перекладывания одного стека в другой
Уже задавал вопрос о том, как переложить один стек в другой, исключая повторяющиеся элементы, но у меня это не получается это реализовать. Вроде все нормально, но программа падает на определённом шаге. Подскажите,что не так?
UPD:
for (int i = 0; i < curSize; ++i) func(stOne, stTwo, curSize, i);
где
void func(myStack <string> &stOne, myStack <string> &stTwo, int &curSize, int n)
{
string compTmp,tmp;
for (int i = 0; i < curSize; ++i)
{
tmp = stOne.pop();
if ( i == n )
{
compTmp = tmp;
stTwo.push(tmp);
}
else if ( i < n )
stTwo.push(tmp);
else if ( i > n )
if ( compTmp.compare(tmp) != 0 )
stTwo.push(tmp);
else curSize--;
}
for (int i = 0; i < curSize; ++i) stOne.push(stTwo.pop());
}
Источник: Stack Overflow на русском