Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Best_Coder
0 / 0 / 0
Регистрация: 18.09.2014
Сообщений: 81
#1

Как правильно удалять элемент из массива? - C++

26.11.2014, 14:56. Просмотров 289. Ответов 4
Метки нет (Все метки)

Подскажите пожалуйста как правильно удалять элемент из динамического массива к примеру максимального?
Путём смещения элементов,или просто созданием нового массива с размером [N-1]?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2014, 14:56     Как правильно удалять элемент из массива?
Посмотрите здесь:

Как правильно удалять элементы листа? - C++
std::list<Bullet*> bullets; std::list<Bullet*>::iterator bullets_it; for (bullets_it = bullets.begin(); bullets_it !=...

Как правильно добавлять и удалять элементы в вектор и из него - C++
Всем доброго времени суток. Прошу объяснить как правильно добавлять и удалять элементы в вектор и из него... Использую его для хранения...

где размещается массив и как его правильно удалять? - C++
У меня вопрос: в примере ниже создается объект класса Map в динамической памяти. В какой памяти тогда располагается массив m? и как его...

Как удалять элемент из строки в c++? - C++
Как удалять элемент из строки в c++?

Как удалять элементы массива? - C++
как в массиве удалять элементы?

Как удалять определенные значения из массива? - C++
Пишу программу по одной задаче, в которой требуется удалить элементы, значение которых меньше среднего арифметического динамического...

Какой элемент останется в кольце последним, если начать по очереди удалять из списка каждый n элемент - C++
Создать структуру с именем Subject с полями: фамилия, имя. Сформиро-вать замкнутое кольцо (односвязный список, у которого последний...

Как удалять из массива элементы, первая цифра которых четная - C++
Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка . Удалить из него все элементы, первая цифра...

Как умножить элемент двойного массива на элемент одинарного массива - C++
Понимаю, что вопрос кого-то покажется глупым, но подскажите хотя бы как обойти этот момент /*for (int i = 0; i < N; i++) { x = (A...

Реализовать функции, позволяющие добавлять/удалять блок элементов в массива/из массива - C++
Уважаемые форумчане, помогите, пожалуйста, с написанием программы. Нужно в динамическом одномерном массиве, размер которого указывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
26.11.2014, 15:02     Как правильно удалять элемент из массива? #2
От задачи зависит
в первом случае идет поэлементное копирование и если тип не равен по размеру int то копирование медленней
во втором можно задействовать memcpy которая оптимизирована но требуется дополнительная память
-THE_MASTER666-
Заблокирован
26.11.2014, 15:05     Как правильно удалять элемент из массива? #3
Цитата Сообщение от Best_Coder Посмотреть сообщение
Путём смещения элементов
Я тут как - то долго спорил и выяснял, есть ли в С++ или в самом процессоре, какая - то инструкция для сдвига памяти (Memory shift или самый быстрый способ перемещения блока памяти), вроде как меня убедили, что никакого memory shift-а нет. По этому любой сдвиг - это полноценное копирование
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
26.11.2014, 15:08     Как правильно удалять элемент из массива? #4
Цитата Сообщение от Best_Coder Посмотреть сообщение
Подскажите пожалуйста как правильно удалять элемент из динамического массива к примеру максимального?
Путём смещения элементов,или просто созданием нового массива с размером [N-1]?
Можно извратом. Как в векторе. То есть - изначально создавать больше элементов. Тогда про смещать и всё. Никакого перевыделения, по идее, быть не должно.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,728
26.11.2014, 15:31     Как правильно удалять элемент из массива? #5
Цитата Сообщение от -THE_MASTER666- Посмотреть сообщение
По этому любой сдвиг - это полноценное копирование
правильно мыслишь
по большому счету и битового сдвига нет,тоже копирование,только реализован на аппаратном уровне

Добавлено через 7 минут
Цитата Сообщение от Тамика Посмотреть сообщение
Тогда про смещать и всё.
давай порассуждаем
вот у тебя есть класс в котором есть штук пять указателей
и массив из 1001 объектов этого класса и удаляем первый
как сдвигать? конструктор копирования? 1000 конструкторов в котором по 5 выделений памяти 1000 деструкторов
в то время как с выделением нового размера memcpy тупо перенесет все
в общем
Цитата Сообщение от ValeryS Посмотреть сообщение
От задачи зависит
Yandex
Объявления
26.11.2014, 15:31     Как правильно удалять элемент из массива?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru