0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 59
|
||||||
1 | ||||||
Удалить элемент массива21.05.2024, 20:48. Показов 2465. Ответов 60
Метки нет (Все метки)
Здравствуйте.
Можно как то удалить элемент массива таким образом.
0
|
21.05.2024, 20:48 | |
Ответы с готовыми решениями:
60
Проверить, упорядочены ли элементы, заменить первый нулевой элемент и удалить указанный элемент из массива Удалить из массива: а) третий элемент, б) к-й элемент. (С++ для начинающих) Удалить каждый K элемент массива пока не останется 1 элемент Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент Удалить первый положительный элемент массива; вставить новый элемент перед первым максимальным элементом |
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 13:56 | 41 |
Алексей1153, это так или DrOffset выдумывает?
Добавлено через 38 секунд да, пожалуйста, я внимательно слушаю
0
|
601 / 438 / 137
Регистрация: 22.11.2017
Сообщений: 1,386
|
|
22.05.2024, 13:58 | 42 |
Мы, будучи людьми, понимаем, что
под удалением элементов со значением "48" из системы 51 52 48 0 31 подразумевается переход системы из состояния 51 52 48 0 31 9 к состоянию 51 52 0 31 9 Как понимаю я, эту операцию у людей принято называть "удаление" Будучи программистами, мы что-то заподазриваем неладное, опускаемся глубже в реализацию - как система выполняет переход из состояния 51 52 48 0 31 9 к состоянию 51 52 0 31 9 И понимаем, что не совсем то это похоже на "удаление", что творится там под капотом
0
|
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 13:59 | 43 |
DrOffset, и можно еще рассказать немного о контрактах?
Добавлено через 1 минуту т.е. при удалении появляется мусор в конце?
0
|
фрилансер
5854 / 5393 / 1103
Регистрация: 11.10.2019
Сообщений: 14,399
|
|
22.05.2024, 14:01 | 44 |
0
|
Royal_X
|
22.05.2024, 14:03
#45
|
Не по теме: SomniPhobia, какой милый котенок на аве)
0
|
601 / 438 / 137
Регистрация: 22.11.2017
Сообщений: 1,386
|
|
22.05.2024, 14:06 | 46 |
Зависит от того, как мы реализуем удаление
Мусор может появится в конце, может появится в начале, может вообще не появляться, может все эти элементы три раза перекопируются куда-то Есть состояние до операции 51 52 48 0 31 9 И есть состояние после операции 51 52 0 31 9 А как выполнен переход от одного состояния ко второму определяет реализация этого действия. И вопрос в том, можем ли мы это назвать "удалением"? По факту было 51 52 48 0 31 9 стало 51 52 0 31 9 Элемент удалён или что вообще произошло? Добавлено через 46 секунд Не по теме:
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 14:08 | 47 |
Семантика = Поведение и его Смысл.
Очевидно, что ТС не особо интересно большинство вышеозвученных нюансов, ему нужно решить задачу. Вот хочет человек вскипятить чай, и он ставит чайник - смысл (семантика) его действий - получить кипяток. Как именно работает чайник для решения этой задачи несущественная деталь. Чайник может быть газовый, электрический, солнечный, на ядерном топливе - это неважно, смысл операции - получить кипяток. Так же и здесь, в задаче ТС наверняка есть коллекция элементов, которая представлена (в его случае) массивом и возникла потребность один из элементов убрать. Это и есть смысл его вопроса. Вектор предоставляет возможность убрать элемент из середины? Предоставляет. Смысл реализуется? Реализуется.
2
|
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 14:15 | 48 |
ясно, понял
Добавлено через 6 минут DrOffset, но когда я использовал слово "массив" по отношению к вектору, на меня так со всех сторон жестко наехали. А ведь я руководствовался семантикой, мол что там, что там, чайник для непрерывного хранения элементов.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 14:16 | 49 |
Заходя к себе домой, ты открываешь дверь. На двери есть замок, и она открывается в определенную сторону. Чтобы воспользоваться возможностью зайти домой, нужно выполнить контракт двери - повернуть ключ, потянуть за ручку, открыть дверь определенным образом. Если ты сделаешь это, то реализуешь установленный контракт и достигнешь цели (смысла) этой операции - попадешь домой.
Таким образом, способ выполнения задачи (семантика задачи) достигается путем выполнения контракта. При этом как правило у всех дверей контракт похож и детали реализации, например, замка не влияют на его выполнение. Также и здесь. Есть вектор и он декларирует операцию "удаление" (декларирует контракт), которая реализует семантику (поведение и его смысл) удаления элемента. Чтобы пользоваться этим не нужно знать как устрено это удаление внутри, так же как не нужно знать как работает замок, чтобы попасть домой.
2
|
601 / 438 / 137
Регистрация: 22.11.2017
Сообщений: 1,386
|
|
22.05.2024, 14:18 | 50 |
Как я вижу:
Массив и динамический массив - это непрерывный участок памяти с одинаковыми по типу значениями, который управляется мозгами программиста std::vector - это непрерывный участок памяти с одинаковыми по типу значениями, который управляется мозгами std::vector, что вшиты в класс std::vector реализует свой паттерн, механизм удаления элемента. То есть, удаление можно вызвать от объекта std::vector Массив и динамический массив не имеют встроенных реализаций действий. Программист при желании может сам описать, как в его понимании будет происходить "удаление" элемента из массива То есть, программист создаст некую функцию, которая будет изменять состояние памяти. Программист это назовёт "удаление", но не факт, что его поддержат другие программисты Давайте рассуждать в нескольких плоскостях: 1. Удаление в реальности, в человеческом понимании 2. Удаление в мире программирования в целом, удаление в понимании ЭВМ 3. Удаление в рамках языка C++, в рамках его сущностей, конструкций, парадигм и договорённостей
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 14:20 | 51 |
По-моему на тебя никто не наезжал.
Ты просто сказал, что удаление из непрерывной последовательности невозможно в принципе (и поэтому, видимо, вектор тоже не подходит, т.к. на самом деле ничего не удаляет). А тебе просто ответили, что это не важно, потому что при оценке инструмента в первую очередь важно какое поведение он обеспечивает, а не как он внутри реализован.
0
|
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 14:22 | 52 |
да я в добром значении этого слова. Но даже если наехали, то я зла не держу)
вся проблема в том, что с самого начала я имел в виду
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 14:28 | 53 |
Ну а потом в контексте немножко прояснилось, что вектор и внутри реализован не как массив. Помнишь ведь?
Массив - это цельный объект, который располагается в непрерывной памяти. А вектор - это множество объектов-элементов, которые располагаются в непрерывной памяти. Логически, из массива нельзя удалить элемент, потому что они его неотъемлемая часть. Если ты уберешь из массива элемент, то это будет уже другой массив, другой объект. Так же как если ты уберешь поле из структуры, это будет уже другая структура. А вот вектор - это другие дело. Там ты можешь разрушить заданный элемент не трогая остальные. А то, что происходит дальше - это следствие требования на непрерывность памяти, а не следствие невозможности убить элемент из середины. Т.е. дальше, да, элементы начинают создаваться путем конструирующего копирования на месте удаленного и освобождаться на прежнем месте, что приводит к определенным накладным расходам.
0
|
460 / 327 / 64
Регистрация: 09.03.2016
Сообщений: 3,244
|
|
22.05.2024, 14:34 | 54 |
Читал я это где то и не единожды.
Открывая воду, не надо знать как устроен кран.... Это должен знать пьяный сантехник. У него нету прокладки, он вставляет туда какую то хрень, которую накомунизьдил у соседа. Берёт бабло и покупает ещё бухла. А чем чаще менять прокладки, тем больше денег на бухло. с++11; c++14, 17, итд.
0
|
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 14:34 | 55 |
я там использовал слово массив в бытовом значении, особо не подбирал слова, поскольку суть моих слов была вообще не в этом. Но как говорят, в холиварах, когда нет аргументов, начинают цепляться уже за слова. Если вы посмотрите на мою активность, то я как раз на форуме всегда утверждаю, что vector это не массив. Недавно был холивар и по string, я там доже говорил, что string это не массив символов.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 14:39 | 56 |
У меня полно аргументов.
В частности я даже не спорил, что с точки зрения памяти ничего не удаляется. Я лишь просто предложил посмотреть на это с позиции, которой раньше в теме не было.
0
|
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 14:46 | 57 |
а ведь холивары так и рождаются
Допустим стоит вопрос: можно ли решить уравнение cos(x)=x аналитически? Я говорю, что нет. Приходит второй, говорит: используй метод Ньютона Я начинаю спорить, говорю "А разве метод ньютона сможет решить аналитически, это же для численного решения" Подходит третий, говорит, что я написал "ньютон" с маленькой буквы. Четвертый говорит, что ТС на самом деле плевать хотел на аналитическое решение, согласно семантике он просто хочет решить уравнение, а как уже не важно Пятый приходит, говорит, что чтобы решать уравнения, нужно иметь калькулятор, и не задумываться о методах и лучше иметь много бухла и прокладок
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 14:56 | 58 |
Тут много нюансов.
Вектор - это массив по семантике, он ведет себя как массив и предоставляет его функциональность (и кое-что дополнительно). Вектор - это не массив по реализации (см. выше). То, что возвращает realloc - это не массив по семантике, это просто память. Мы можем начать рассматривать ее как массив, но только после договоренности. Так что когда в этой теме я говорил, что вектор - это не массив, это было к контексте того, что он реализован не как массив. И это критически важно в этой теме, чтобы понять почему операция, которую предложил ТС, невозможна в принципе, а у вектора есть шансы ее выполнить. Ну и я все еще не уверен, что ты не смешивал на каких-то этапах нашего разговора массив и непрерывную память. Добавлено через 7 минут Холивары рождают люди, которые не умеют или не хотят воспринимать информацию от других людей. Ты высказал суждение, потом пришел я и сказал, что дескать, это верно, но такие рассуждения ни к чему не приведут полезному (в частности в контексте темы): Т.е., проще говоря, ответ про вектор правомерен, т.к. решает задачу. Ты же отказался это воспринять и стал меня троллить, писать про доверчивость и т.п. И вот уже начался холивар. Не раньше.
0
|
845 / 648 / 323
Регистрация: 24.02.2017
Сообщений: 2,289
|
||||||
22.05.2024, 14:57 | 59 | |||||
для примера возьмем строку char: удаление символа можно организовать сдвигом влево на один символ и в конце поставить символ конца строки. в нашем случае используем конструкцию
0
|
4256 / 2109 / 965
Регистрация: 01.06.2021
Сообщений: 7,305
|
|
22.05.2024, 15:02 | 60 |
когда я говорю, что вектор это массив, ты говоришь, что я ошибаюсь (полагая, что я имел в виду реализацию)
когда я говорю, что вектор это не массив, ты и тут говоришь, что я ошибаюсь (полагая, что я имел в виду семантику) т.е. ты в любом случае будешь говорить, что я ошибаюсь)) но почему я не могу быть правым в твоем понимании? ведь может же быть так, что когда я говорю вектор это массив, я имею в виду семантику, а когда говорю, что вектор не массив имею в виду реализацию. Т.е. это и называется предвзятость
0
|
22.05.2024, 15:02 | |
22.05.2024, 15:02 | |
Помогаю со студенческими работами здесь
60
Удалить каждый k-ый элемент элемент массива Найти максимальный элемент массива и удалить его из массива, порядок других элементов сохранить Удалить строку, в которой находится максимальный элемент. Если такой элемент встречается несколько раз, то удалить все с Удалить элемент из массива Удалить элемент из массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
|
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
|
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей
Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
|
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
|
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
|
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
|
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
|
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке
В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
|