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
.