Не правильно работает структура

121
22 июня 2019, 06:40

У меня есть класс, но программа вылетает после создания объекта его типа.

const int B = 707; /// sqrt(N)
struct Mex {
int x[N], group[B + 5];
/*
 * This struct can push and pop an element with O(1),
 * calculate MEX with O(sqrt(N))
 */
Mex() {
    fill(x, x + N, 0);
    fill(group, group + N, 0);
}

void push(int val) {
    ++x[val];
    if (x[val] == 1)
        ++group[val / B];
}

void pop(int val) {
    --x[val];
    if (x[val] == 0)
        --group[val / B];
}

int getValue() {
    for (int i = 0; i <= B + 1; ++i) {
        if (group[i] < B) {
            for (int j = i * B, end = i * (B + 1); j < end; ++j) {
                if (x[j] == 0) {
                    return j;
                }
            }
        }
    }
    return -1;
}
};
Answer 1

Ну смотрите:

const int B = 707; /// sqrt(N)
int x[N], group[B + 5];

Значит, B ну очень сильно меньше N.

А заполняете вы

fill(group, group + N, 0);

куда больше, чем влазит. Портя при этом память...

P.S. Остальной функционал не смотрел. Все равно

программа вылетает после создания объекта его типа

до него дело не доходит...

READ ALSO
Как в OpenGL нарисовать дугу?

Как в OpenGL нарисовать дугу?

Как в opengl c++ нарисовать дугу которая начинается с определённой точки и заканчивается определённой точкой Пример - дуги которые между многоугольниками...

104
Помогите разобраться variadic templates

Помогите разобраться variadic templates

Покажите пожалуйста простой пример с variadic templatesХотелось бы следующее

138
Не работает чтение и запись в файл Qt

Не работает чтение и запись в файл Qt

Есть окно, в окне кнопка и лейблкод кнопки

142
Как убрать eventHandler с кнопки в javafx?

Как убрать eventHandler с кнопки в javafx?

при таком коде во время запуска игры по идее должно пропадать действие при нажатии кнопкиБез добавления eventHandler игра не реагирует, но вот...

120