32767.а в моем случае это значение должно быть 1661
cost?short min=10000,, потом следом за cost += min; я вижу строку min = 100000;. Какое из присеваемых min значений неправильное?short, хотя бы в виду того что все операции у тебя все равно проходят через integer promotion.short int. prog. Внутри prog этот указатель пишется в еще две переменные и все. Память массива массивов у тебя одна для всего твоего процесса. почему допустим не Eclipse
Например Android Studio
в общем написать свою функцию remove_copy
std::remove_if[?].Цель функции была скопировать ненулевые элементы одного контейнера в другой
std::copy_if[?].delete[] arr, temp;operator , (), поведение которого по умолчанию возвращает только правый операнд.arr. Разбей эту строку на две, в каждой из которых удаляй конкретный массив.void pushBack(T value)value.elements_memory или memory_block (Второе менее предпочтительно, но тоже понятно. Первое будет понятно очень хорошо); емкость блока памяти - memory_capacity или capacity; длина вектора - elements_count или length или size (последнее менее всего предпочтительно, но канонично относительно реализации вектора); закон роста емкости и закон аллокации элементов.std::allocator. Закон роста емкости обычно вписывают прямо в реализацию как функцию роста емкости.reserve (только рост, емкость не уменьшается); изменение длины - resize (длину можно и уменьшать); очистка - clear и вставка в конец - push_back.void pushBack(T value) нужно просто переписать, в текущем коде ломается целостность состояния вектора. Именно поэтому у тебя вектор не работает со строками. Текущий код выполняет buffer overrun прямо на ровном месте потому что ты сперва сделал length++;, а потом уже clon();, в котором цикл вышел за пределы памяти arr.T& operator[](int i)try, а потом еще и в catch.