|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 67
|
||||||
Удалить элемент массива21.05.2024, 20:48. Показов 3120. Ответов 60
Метки нет (Все метки)
Здравствуйте.
Можно как то удалить элемент массива таким образом.
0
|
||||||
| 21.05.2024, 20:48 | |
|
Ответы с готовыми решениями:
60
Удалить из массива: а) третий элемент, б) к-й элемент. (С++ для начинающих)
|
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
|||
| 22.05.2024, 13:56 | |||
|
Добавлено через 38 секунд
0
|
|||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,408
|
|
| 22.05.2024, 13:58 | |
|
Мы, будучи людьми, понимаем, что
под удалением элементов со значением "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
|
|
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
||
| 22.05.2024, 13:59 | ||
|
DrOffset, и можно еще рассказать немного о контрактах?
Добавлено через 1 минуту
0
|
||
|
фрилансер
6447 / 5643 / 1128
Регистрация: 11.10.2019
Сообщений: 15,016
|
|
| 22.05.2024, 14:01 | |
|
0
|
|
| 22.05.2024, 14:03 | |
|
Не по теме: SomniPhobia, какой милый котенок на аве)
0
|
|
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,408
|
||
| 22.05.2024, 14:06 | ||
|
Мусор может появится в конце, может появится в начале, может вообще не появляться, может все эти элементы три раза перекопируются куда-то Есть состояние до операции 51 52 48 0 31 9 И есть состояние после операции 51 52 0 31 9 А как выполнен переход от одного состояния ко второму определяет реализация этого действия. И вопрос в том, можем ли мы это назвать "удалением"? По факту было 51 52 48 0 31 9 стало 51 52 0 31 9 Элемент удалён или что вообще произошло? Добавлено через 46 секунд Не по теме:
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 22.05.2024, 14:08 | ||
|
Очевидно, что ТС не особо интересно большинство вышеозвученных нюансов, ему нужно решить задачу. Вот хочет человек вскипятить чай, и он ставит чайник - смысл (семантика) его действий - получить кипяток. Как именно работает чайник для решения этой задачи несущественная деталь. Чайник может быть газовый, электрический, солнечный, на ядерном топливе - это неважно, смысл операции - получить кипяток. Так же и здесь, в задаче ТС наверняка есть коллекция элементов, которая представлена (в его случае) массивом и возникла потребность один из элементов убрать. Это и есть смысл его вопроса. Вектор предоставляет возможность убрать элемент из середины? Предоставляет. Смысл реализуется? Реализуется.
2
|
||
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
||
| 22.05.2024, 14:15 | ||
|
Добавлено через 6 минут DrOffset, но когда я использовал слово "массив" по отношению к вектору, на меня так со всех сторон жестко наехали. А ведь я руководствовался семантикой, мол что там, что там, чайник для непрерывного хранения элементов.
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 22.05.2024, 14:16 | ||
|
Таким образом, способ выполнения задачи (семантика задачи) достигается путем выполнения контракта. При этом как правило у всех дверей контракт похож и детали реализации, например, замка не влияют на его выполнение. Также и здесь. Есть вектор и он декларирует операцию "удаление" (декларирует контракт), которая реализует семантику (поведение и его смысл) удаления элемента. Чтобы пользоваться этим не нужно знать как устрено это удаление внутри, так же как не нужно знать как работает замок, чтобы попасть домой.
2
|
||
|
602 / 439 / 137
Регистрация: 22.11.2017
Сообщений: 1,408
|
|
| 22.05.2024, 14:18 | |
|
Как я вижу:
Массив и динамический массив - это непрерывный участок памяти с одинаковыми по типу значениями, который управляется мозгами программиста std::vector - это непрерывный участок памяти с одинаковыми по типу значениями, который управляется мозгами std::vector, что вшиты в класс std::vector реализует свой паттерн, механизм удаления элемента. То есть, удаление можно вызвать от объекта std::vector Массив и динамический массив не имеют встроенных реализаций действий. Программист при желании может сам описать, как в его понимании будет происходить "удаление" элемента из массива То есть, программист создаст некую функцию, которая будет изменять состояние памяти. Программист это назовёт "удаление", но не факт, что его поддержат другие программисты Давайте рассуждать в нескольких плоскостях: 1. Удаление в реальности, в человеческом понимании 2. Удаление в мире программирования в целом, удаление в понимании ЭВМ 3. Удаление в рамках языка C++, в рамках его сущностей, конструкций, парадигм и договорённостей
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 22.05.2024, 14:20 | ||
|
Ты просто сказал, что удаление из непрерывной последовательности невозможно в принципе (и поэтому, видимо, вектор тоже не подходит, т.к. на самом деле ничего не удаляет). А тебе просто ответили, что это не важно, потому что при оценке инструмента в первую очередь важно какое поведение он обеспечивает, а не как он внутри реализован.
0
|
||
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
||||
| 22.05.2024, 14:22 | ||||
|
0
|
||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 22.05.2024, 14:28 | ||
![]() Массив - это цельный объект, который располагается в непрерывной памяти. А вектор - это множество объектов-элементов, которые располагаются в непрерывной памяти. Логически, из массива нельзя удалить элемент, потому что они его неотъемлемая часть. Если ты уберешь из массива элемент, то это будет уже другой массив, другой объект. Так же как если ты уберешь поле из структуры, это будет уже другая структура. А вот вектор - это другие дело. Там ты можешь разрушить заданный элемент не трогая остальные. А то, что происходит дальше - это следствие требования на непрерывность памяти, а не следствие невозможности убить элемент из середины. Т.е. дальше, да, элементы начинают создаваться путем конструирующего копирования на месте удаленного и освобождаться на прежнем месте, что приводит к определенным накладным расходам.
0
|
||
|
519 / 369 / 66
Регистрация: 09.03.2016
Сообщений: 3,898
|
||
| 22.05.2024, 14:34 | ||
|
Открывая воду, не надо знать как устроен кран.... Это должен знать пьяный сантехник. У него нету прокладки, он вставляет туда какую то хрень, которую накомунизьдил у соседа. Берёт бабло и покупает ещё бухла. А чем чаще менять прокладки, тем больше денег на бухло. с++11; c++14, 17, итд.
0
|
||
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
||
| 22.05.2024, 14:34 | ||
|
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 22.05.2024, 14:39 | ||
|
В частности я даже не спорил, что с точки зрения памяти ничего не удаляется. Я лишь просто предложил посмотреть на это с позиции, которой раньше в теме не было.
0
|
||
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
||
| 22.05.2024, 14:46 | ||
|
Допустим стоит вопрос: можно ли решить уравнение cos(x)=x аналитически? Я говорю, что нет. Приходит второй, говорит: используй метод Ньютона Я начинаю спорить, говорю "А разве метод ньютона сможет решить аналитически, это же для численного решения" Подходит третий, говорит, что я написал "ньютон" с маленькой буквы. Четвертый говорит, что ТС на самом деле плевать хотел на аналитическое решение, согласно семантике он просто хочет решить уравнение, а как уже не важно Пятый приходит, говорит, что чтобы решать уравнения, нужно иметь калькулятор, и не задумываться о методах и лучше иметь много бухла и прокладок
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||||
| 22.05.2024, 14:56 | |||||
|
Вектор - это массив по семантике, он ведет себя как массив и предоставляет его функциональность (и кое-что дополнительно). Вектор - это не массив по реализации (см. выше). То, что возвращает realloc - это не массив по семантике, это просто память. Мы можем начать рассматривать ее как массив, но только после договоренности. Так что когда в этой теме я говорил, что вектор - это не массив, это было к контексте того, что он реализован не как массив. И это критически важно в этой теме, чтобы понять почему операция, которую предложил ТС, невозможна в принципе, а у вектора есть шансы ее выполнить. Ну и я все еще не уверен, что ты не смешивал на каких-то этапах нашего разговора массив и непрерывную память. Добавлено через 7 минут Ты высказал суждение, потом пришел я и сказал, что дескать, это верно, Ты же отказался это воспринять и стал меня троллить, писать про доверчивость и т.п. И вот уже начался холивар. Не раньше.
0
|
|||||
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
||||||
| 22.05.2024, 14:57 | ||||||
|
для примера возьмем строку char: удаление символа можно организовать сдвигом влево на один символ и в конце поставить символ конца строки. в нашем случае используем конструкцию
0
|
||||||
|
6147 / 2840 / 1040
Регистрация: 01.06.2021
Сообщений: 10,349
|
||
| 22.05.2024, 15:02 | ||
|
когда я говорю, что вектор это не массив, ты и тут говоришь, что я ошибаюсь (полагая, что я имел в виду семантику) т.е. ты в любом случае будешь говорить, что я ошибаюсь)) но почему я не могу быть правым в твоем понимании? ведь может же быть так, что когда я говорю вектор это массив, я имею в виду семантику, а когда говорю, что вектор не массив имею в виду реализацию. Т.е. это и называется предвзятость
0
|
||
| 22.05.2024, 15:02 | |
|
Помогаю со студенческими работами здесь
60
Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент
Удалить каждый k-ый элемент элемент массива Найти максимальный элемент массива и удалить его из массива, порядок других элементов сохранить Удалить строку, в которой находится максимальный элемент. Если такой элемент встречается несколько раз, то удалить все с Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|