LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

Это какой-то странный интерфейс и описание такое же. Но всё же попробую угадать.

std::vector<Element *> stack;
int pos;

void
stackChanged(int size, int position, Element *element)
{
    stack.resize(size);
    pos = position;

    if (element != nullptr) {
        stack.back() = element;
    }
}

Я бы поменял интерфейс или разбил бы его на несколько операций, которые бы обрабатывал отдельно (раз по аргументам можно определить, что происходит).

Исходная версия xaizek, :

Это какой-то странный интерфейс и описание такое же. Но всё же попробую угадать.

std::vector<Element *> stack;
int pos;

void
stackChanged(int size, int position, Element *element)
{
    stack.resize(size);
    pos = position;

    if (element != nullptr) {
        stack.back() = element;
    }
}