|
1 / 3 / 0
Регистрация: 25.04.2015
Сообщений: 472
|
|||||||||||
Потенциальная утечка памяти15.03.2026, 13:57. Показов 9627. Ответов 118
Метки нет (Все метки)
Здравствуйте! Помогаю тут знакомому делать лабораторную по программированию на С++. Делаю в Qt так как начал его изучать.
Задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива;[1] 2) сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. Вот, что у меня получилось:
И если можно подскажите как в этом коде сделать ЗАЩИТУ если в консоли будет набрано не правильное количество элементов.
0
|
|||||||||||
| 15.03.2026, 13:57 | |
|
Ответы с готовыми решениями:
118
Утечка памяти Шаблоны STL & утечка памяти. Утечка памяти |
|
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,539
|
|
| 19.03.2026, 01:44 | |
|
Наталья8, вижу, что ты взял числа из моего массива. Вспомнилось, как на форуме вроде бы несколько лет назад (короче, когда форум был на пике активности) была тема, там ТС просил написать ему код на С++ и что-то там было связано с обработкой текстового файла. Ну и как всегда, ТС не приложил этот входной файл, поэтому никто не хотел писать код.
Я вот не поленился и написал текст для входного файла. С виду это был рандомный безобидный текст. Тут подтянулись другие и стали копировать мой текст (ну прям как ты скопировал числа из моего массива), чтобы использовать в своих вариантах кода. Ты подумаешь, ну и что с того, ребята решили просто не тратить свое время на написание рандомного текста для входного файла, а взяли его у RoyalX. Некоторые даже прямо благодарили меня за проделанную работу. Ну да, всё было бы ничего, если бы только по первым буквам каждой строки не было бы зашифровано пошлое послание))) А текст до сих пор на форуме...
1
|
|
|
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
|
|
| 19.03.2026, 01:47 | |
|
Спасибо за проделанную работу. Создание массива.
Си, такая же фигня как плюсы, токо ни чё не понятно...
0
|
|
| 19.03.2026, 01:51 | |
|
0
|
|
| 19.03.2026, 01:54 | |
|
0
|
|
| 19.03.2026, 01:56 | |
|
0
|
|
| 19.03.2026, 01:59 | |
|
0
|
|
| 19.03.2026, 02:44 | |||||
Посмотрите open-sources (хоть тот же Qt), никакого "обилия std" я там не наблюдаю Не, я конечно понимаю что "чисто объективно" std - штука совсем не плохая, да и вообще стандартная библиотека необходима. Но все хорошо в меру, а многие ее совсем потерялиИ вот делаю я все в одном цикле/проходе, и что, это чем-то плохо? Чем? Какой-то анти-паттерн? Какой? Не выходит задействовать std? Ну если все легко достигается и без него - значит он здесь и не очень нужен/необходим.
0
|
|||||
|
Заблокирован
|
||||
| 19.03.2026, 03:15 | ||||
|
Вот же в моем примере итератор прицеплен на поток, при чтении. Так же можно прицепить ко всем алгоритмам которые используют forward iterator. Анти-паттерн - противоположное. Непонятно почему мне приходится повторяться. Предлагаю попробовать написать "по-взрослому". По-моему чтение должно выглядеть так И так в десятках твоих тем могу привести. В одних темах ты уводишь в сторону общих и универсальных подходов. В другом лепишь в кучу си-говнокода. Определись уже. Или просто признайся, что заходишь просто с кем то поспорить и конечно же, потроллить. Я, например, свои аргументы привел. Они просты и понятны. Ты же, сейчас и до конца времен будешь как уж юлить, выдумывать и фантазировать. Ясно-понятно, ничего не изменилось. Удачи. ТС-у придется поразмышлять над всем этим. Добавлено через 7 минут Где необходимо свои, пишутся свои. Где можно обойтись стандартным или их скомбинацией, выбираются готовые. Опять чувствую что повторяюсь.... p.s. Впервые вижу std::-фобию)
0
|
||||
| 19.03.2026, 04:57 | |||||||
0
|
|||||||
| 19.03.2026, 18:02 | |||
Хотя я бы тоже его сходу/навскидку не написал. Вот std:: partition да, но и то пришлось бы повозиться. А для stable пришлось бы почитать теорию. Поэтому наверно лучше не строить из себя крутяка, а позиционироваться скромнее, напр
Во-вторых, с выбором нужных ф-ций нередки осечки. Напр std::stable_partition - не лучший выбор. Да, рез-т тот что нужен, но не оптимально, все-таки велик здесь чуть лучше. На копеечку, напрягаться не стоит, проще std::remove_if, но все-таки Хорошо заметно что усиленное пожирание std::функций деформирует сознание. Решение принимаются не по логике задачи, а потому что видит/знает "нужную ф-цию". Напр в этой теме 3 задачи решались в 3 циклах, пусть это решение как минимум не хуже, но сознательным выбором это не было. Как сейчас модно говорить, "хвост виляет собакой" Почему-то не смущает что достигнутая экономия/профессионализм часто ну как-то очень малы, напр здесь std::find_max и std::accumulate. Разве это великое достижение плюсов которым стоит гордиться? Тем не менее человек упорно стремится утыкать весь код std ("как будто в этом есть покой" ). Впрочем это не касается др аспектов std (контейнеров, многопоточность и др) - но там же надо вникать, а не так, ф-ции хватать, поэтому там заниматься не особо хотят. А тут комфортно - открыл cppreference, посмотрел пример - и вот уже есть полное право обругать "отсталым сишкокодером" любого кто так не делает. Признаться что кучу времени потратил на полную фигню никто не хочет, даже самому себе
0
|
|||
| 19.03.2026, 18:11 | ||
|
Не по теме:
Во-вторых, когда я имел в виду, что тоже могу написать детский лисапед, то я имел в виду лисапед для решения задачи ТС, похожий на тот, что ты написал. Для решения задачи ТС лисапедным способом вовсе необязательно реализовать полноценный std::stable_partition. В-третьих, да, если мне понадобится, то я без проблем напишу свой std::stable_partition. Но мне это сейчас не нужно и у меня нет никакого желания тратить своё время на ненужные вещи, которые отнимут у меня определенное неоправданное количество времени только потому, что некий анонимный трехмерный Игорь хочет взять меня на слабо)))
0
|
||
| 20.03.2026, 14:51 | |
|
0
|
|
| 20.03.2026, 15:45 | |||||||
0
|
|||||||
| 20.03.2026, 16:07 | |||
|
Не по теме:
В этой теме только 50 постов уйдет на обсуждение The Art of Computer Programming, в частного второго тома Seminumerical algorithms...
0
|
|||
|
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
|
||||||
| 20.03.2026, 18:00 | ||||||
|
https://gist.github.com/LostIn... 04121959a4
Подробно для велосипедистов. Вообще, когда из вектора удаляешь значение, он (ёпть), сжимаеться и сам замещает пустое место. На c style массиве надо перегонять все что после нуля на одну позицию в лево, затирая тот нуль. Когда то писал я такое и на векторе и на си стиль массиве. ИИ ещё не было. А разделы форума нормально работали. (Не воровал, а писал.) Добавлено через 10 минут Вот так искуственный интелект хочет нули удалять. На с++.
Хочешь что бы конкретно и правильно - пиши сам и на си..
0
|
||||||
|
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,539
|
||||||||||
| 20.03.2026, 18:27 | ||||||||||
|
только зачем всё это, если можно и одной функцией все проделать...
0
|
||||||||||
| 21.03.2026, 07:04 | ||||||||||||||||||
|
std::remove_if не зачищает хвосты, напр
0
|
||||||||||||||||||
|
6312 / 3035 / 1053
Регистрация: 01.06.2021
Сообщений: 11,539
|
|||||||
| 21.03.2026, 17:39 | |||||||
std::stable_partition (если порядок ненулевых элементов важен) или std::partition (если этот порядок не важен)?Касательно оптимизации, то можно привести C++ Core Guidelines, а именно первые 6 пунктов раздела Performance: Per.1: Don’t optimize without reason Per.2: Don’t optimize prematurely Per.3: Don’t optimize something that’s not performance critical Per.4: Don’t assume that complicated code is necessarily faster than simple code Per.5: Don’t assume that low-level code is necessarily faster than high-level code Per.6: Don’t make claims about performance without measurements Попытайся вникнуть в смысл этих принципов, чтобы побороть свои страхи. Иначе ты никогда нормальный код на С++ не напишешь. Касательно же количества строк, то я впервые слышу, что это важно. Какая разница, писать в одну строку или в две? Я еще понял бы, если код предназначался бы для какого-то сайта, где люди соревнуются между собой, кто напишет покороче. К тому же, "строка" кода - это понятие субъективное. Вот, если я возьму две строчки твоего кода и напишу одной строкой, что тогда? Снизится лишь читаемость кода.
0
|
|||||||
|
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
|
||||||
| 21.03.2026, 17:53 | ||||||
|
Если это велосипед, то очень старый.
Кстати довольно гавнистая схема. Если вталкивать нули в конец в процессе, v.size() будет расти. Как бы бесконечный цикл не получился. На сишном массиве проще он меньше выделываеться. Добавлять после процесса...
0
|
||||||
| 21.03.2026, 17:53 | |
|
Будет ли утечка памяти при выполнении данного кода? Утечка памяти в работе с классами Утечка памяти, пользуюсь vld Утечка памяти при умножении матрицы на число Утечка памяти CppWebBrowser Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
|
|
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|