0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 59
|
||||||
1 | ||||||
Удалить элемент массива21.05.2024, 20:48. Показов 2468. Ответов 60
Метки нет (Все метки)
Здравствуйте.
Можно как то удалить элемент массива таким образом.
0
|
21.05.2024, 20:48 | |
Ответы с готовыми решениями:
60
Проверить, упорядочены ли элементы, заменить первый нулевой элемент и удалить указанный элемент из массива Удалить из массива: а) третий элемент, б) к-й элемент. (С++ для начинающих) Удалить каждый K элемент массива пока не останется 1 элемент Удалить первый нулевой элемент массива и добавить после каждого чётного элемента особый элемент Удалить первый положительный элемент массива; вставить новый элемент перед первым максимальным элементом |
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
|
|
22.05.2024, 13:17 | 21 |
Ну так последний уничтожается не затрагивая других, оставаясь на своем месте.
Я говорю о типах, а ты спускашься в демагогию.
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 13:21 | 22 |
Он имел в виду, что в векторе элементы не содержатся в массиве. Это одиночным образом сконструированные элементы в непрерывной памяти. Когда мы делаем erase - вектор вызывает деструктор для требуемого элемента, а затем делает конструирующее копирование\перемещение оставшихся элементов в освободившееся место со сдвигом на размер удаленных элементов.
С точки зрения семантики времени жизни С++ объект перестает существовать, если его деструктор был вызван. Добавлено через 2 минуты Я не противоречу. Я говорю о том, что определяющее свойство для оценки - это контракт, а не детали реализации.
0
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:25 | 23 |
просто ты очень доверчивый => если разрабы библиотеки прозвали данную операцию удалением, то значит ты тоже будешь называть это удалением, чтобы не нарушить контракт
так и без вектора это можно делать std::realloc
0
|
6340 / 3511 / 1427
Регистрация: 07.02.2019
Сообщений: 8,977
|
|
22.05.2024, 13:28 | 24 |
0
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:29 | 25 |
0
|
фрилансер
5861 / 5400 / 1106
Регистрация: 11.10.2019
Сообщений: 14,431
|
|
22.05.2024, 13:32 | 26 |
Royal_X,
есть объект "массив". У него нет операции удаления элемента. Её можно сымитировать, написав пиалушку лапши, приправив парой багов есть объект "вектор". У него есть метод удаления - давно написанный и отлаженный. Встроенный в стандарт. Внутри вся лапша уже есть что выбираешь?
1
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:33 | 27 |
***
Выводы: ТС хотел без STL разобраться, как удалить элемент из vector можно предлагать в качестве совета, но не как решение задачи Добавлено через 55 секунд пики точеные
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 13:34 | 28 |
Троллим? И на "ты" перешли? Ладно.
Все перепуталось у тебя. У операции есть семантика, которую определяет контракт. Это основной критерий. Нигилизм тут ничего не дает, даже скорее вредит, разрушая выстроенные слои абстракции. А для понимания того, что удаление в векторе не такое уж и простое, есть, как я уже сказал, величина вычислительной сложности операции. realloc - это про память, а не про объекты.
0
|
фрилансер
5861 / 5400 / 1106
Регистрация: 11.10.2019
Сообщений: 14,431
|
|
22.05.2024, 13:35 | 29 |
так у задачи
как то удалить элемент массива нет решенияа вот у задачи пометить элементы удалёнными или пересоздать массив - вполне естьэто для другого форума
1
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:37 | 30 |
стоп стоп стоп
если ты говоришь, что в векторе есть удаление и соответственно есть решение, то значит у этой задачи есть решение, которое заключается в написании нечто схожего, что есть в векторе или ты хочешь сказать, что даже если напишешь нечто схожее на вектор, то придется еще стандартизировать этот код, чтобы называть это удалением?
0
|
фрилансер
5861 / 5400 / 1106
Регистрация: 11.10.2019
Сообщений: 14,431
|
|
22.05.2024, 13:39 | 31 |
Royal_X, вектор не удаляет элемент из массива
0
|
601 / 438 / 137
Регистрация: 22.11.2017
Сообщений: 1,393
|
|
22.05.2024, 13:40 | 32 |
Royal_X, zayats80888,
А что означает термин "удаление" в жизни, как считаете Вы? Васе удалили зуб. В десне прослеживается его отсутствие. Где зуб? Он не исчез - лежит на столике В словаре можно встретить следующее определение: Удалить - переместить на наиболее далёкое расстояние, отдалить То есть, как понимаю я, удалить в реальности - это даже не разрушить объект, а вынуть его, достать и убрать подальше, например, в мусорку. В последствие мусор будет вывезен далеко - за черту города Ещё есть понятие уничтожить. А оно что значит? В моём понимании, уничтожить объект - это разорвать связи элементов внутри объекта. Уничтожить бумагу - разорвать её. И всё равно, бумага остаётся, просто связи между молекулами её составляющие разрушены Я к тому, что удаление и уничтожение объекта не выбрасывает объект, не вычёркивает его из вселенной. Просто меняется состояние. При удалении объект определённым образом перемещается, мы от него избавляемся. При уничтожении мы разрушаем внутреннюю структуру связей присущую объекту Теперь о компьютерном мире: Что значит удалить папку? Что значит уничтожить папку? И в компьютере ничего не исчезает. Удаление приводит к перемещению объекта в корзину. А если подумать, то объект даже никуда не перемещается. Он же тяжёлый. Он остаётся на месте. На удаляемый объект навешивается бирка, что он "удалён". Объект станет отображаться в корзине и исчезнет с прежнего места А если удалить из корзины? Тут то должно удалиться. И тут ничего не удаляется. Просто стирается дорожка, которая ведёт к объекту. Область памяти, которую занимает объект помечается свободной. Объект лежит всё там же, пока его не перезапишет кто ни будь То есть, удалить в компьютерном мире может происходить путём пометки области памяти как пустое место. Отсюда возникает понятие мусора. Этот мусор сами должны перезаписать программы в ходе инициализации блоков памяти Более надёжное удаление (уничтожение объекта) - перезапись удаляемого объекта другой информацией, затирание, своими руками. А не ждать пока кто-то затрёт эту память. Это если Вы хотите удалить что-то ценное, что-то что не должно валяться в памяти пусть дажё ещё 1 лишнюю секунду И то данные можно восстановить при большом желании. Чтобы удалить без возможности восстановления, нужно перетереть ячейки памяти на несколько раз специальными последовательностями байт
0
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:42 | 33 |
так а DrOffset говорит, что удаляет согласно контрактам, семантике и еще чему-то еще))
Добавлено через 2 минуты Не по теме: SomniPhobia, я этот поток не выдержу, перестань. Два джедая с двумя мечами налетели на меня, а у меня нет даже светового меча, палкой размахиваюсь, а тут еще ты появляешься сбоку)))
0
|
фрилансер
5861 / 5400 / 1106
Регистрация: 11.10.2019
Сообщений: 14,431
|
|
22.05.2024, 13:42 | 34 |
Royal_X, внутри себя вектор пусть хоть на Марс летает. А снаружи - для нас - он удаляет элемент
0
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:43 | 35 |
окей, напиши для ТС нечто схожее на вектор, без STL, чтобы тоже мог снаружи удалять элемент
0
|
фрилансер
5861 / 5400 / 1106
Регистрация: 11.10.2019
Сообщений: 14,431
|
|
22.05.2024, 13:45 | 36 |
Royal_X, пусть ТС сам потренируется
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 13:46 | 37 |
Вектор - это не массив (в его реализации).
Удаление из вектора - это не удаление из массива. Удаление из вектора - это удаление одиночного элемента из непрерывной памяти. У тебя смешались понятия непрерывной памяти и массива (особенно судя по упоминанию realloc).
0
|
4323 / 2192 / 966
Регистрация: 01.06.2021
Сообщений: 7,545
|
|
22.05.2024, 13:52 | 38 |
Не по теме: так я порой пишу "вы", порой "ты". Когда пишу, то особо не задумываюсь. Добавлено через 4 минуты окей, тогда зачем в теме где вопрос задан Мы все отвечаем нет, не можно, но тут появляется Алексей1153, который говорит, используй vector. и вся эта дискуссия началась вот так Добавлено через 1 минуту Алексей1153, ты виновник данного холивара
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
22.05.2024, 13:54 | 39 |
Ну, типа, затем, чтобы не оставлять ТС с ответом "это невозможно, а дальше как хочешь", а предложить ему приемлемую альтернативу с той же семантикой.
(ПС. если слово "семантика" тебе не понятно, я могу объяснить)
0
|
фрилансер
5861 / 5400 / 1106
Регистрация: 11.10.2019
Сообщений: 14,431
|
|
22.05.2024, 13:54 | 40 |
Royal_X, ура, наконец-то нашёлся я
0
|
22.05.2024, 13:54 | |
22.05.2024, 13:54 | |
Помогаю со студенческими работами здесь
40
Удалить каждый k-ый элемент элемент массива Найти максимальный элемент массива и удалить его из массива, порядок других элементов сохранить Удалить строку, в которой находится максимальный элемент. Если такой элемент встречается несколько раз, то удалить все с Удалить элемент из массива Удалить элемент из массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
|
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
|
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
|
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
|
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
|
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
|
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
|
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать.
/ / . . .
|
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
|
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
|
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
|
Как записать только часть изменений файла в Git
bytestream 28.01.2025
В процессе разработки программного обеспечения часто возникает необходимость сохранить только определенные изменения из множества внесенных правок в файлах. Система контроля версий Git предоставляет. . .
|