1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 51
|
||||||
1 | ||||||
удаление элемента31.10.2010, 00:16. Показов 1812. Ответов 20
Метки нет (Все метки)
по идеии удалит все элементы которые равны 23 ?
0
|
31.10.2010, 00:16 | |
Ответы с готовыми решениями:
20
Вставка элемента в заданную позицию, удаление элемента по заданной позиции, поиск заданного элемента Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств ) Сделать добавление элемента в массив и удаление элемента из массива используя STL Реализация списка.Удаление хвостового элемента.Поиск элемента |
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|||||||||||
31.10.2010, 00:43 | 2 | ||||||||||
неа, remove только перемещает элементы которые должны быть удалены и возвращает указатель на следующий за последним неудаленным, а элементы контейнера сдвигаются
нужно применять вместе с erase
0
|
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
|
||||||
31.10.2010, 00:48 | 3 | |||||
Будь проще:
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
31.10.2010, 00:50 | 4 |
deleted
0
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
31.10.2010, 00:51 | 5 |
NikolaWhite, remove не удаляет
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
31.10.2010, 00:52 | 6 |
PointsEqual, Листовский удаляет. Так говорит программа.
list->remove
0
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
31.10.2010, 01:00 | 7 |
но почему? remove же работает только с некоторой последовательностью - перемещает, как он удаляет?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
31.10.2010, 01:07 | 8 | ||||||||||
PointsEqual, Листовский устроен по другому видать. По сути удаляем мы в векторе, массиве. Там нам действительно надо переместить элементы и последний всегда должен существовать.
Список. Мы удаляем узел, соединяем предыдущий с последующим и последующий с предыдущим. Перемещение элементов в списке, дабы удалить несколько или один - бессмысленная операция. Но это как я это вижу. Ну да. Оказалось, что я почти прав. Пруф: list->remove В еще большее подтверждение определение list::remove в MSVS 2008.
1
|
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
|
|
31.10.2010, 01:20 | 9 |
а если для листа применить erase-remove это будет ошибкой?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
31.10.2010, 01:22 | 10 |
PointsEqual, нет. но зачем, если в list::remove итак вызывается erase?
Да и + это совершенно неоптимально. std::remove незаточен под списки все же.
0
|
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 51
|
|
31.10.2010, 01:35 [ТС] | 11 |
я тоже так думал но когда запускаю программу то ввожу размерность например 3 ввожу 1 23 45 и он мне продолжает предлагать вводить когда удаляю строку с remove все нормально
то есть если я ввожу без 23 все работает как ввожу так и выводит а если ввожу с 23 то все программа предлагать вводить,вводить ,вводить .....
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
31.10.2010, 01:40 | 12 |
cap, Еще бы. Ща поясню фишку. Вы удаляете элемент. Итератор становится равен нулю. И затем вы пытаетесь его инкрементировать. Не самое хорошее решение, верно?
0
|
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 51
|
|
31.10.2010, 01:43 [ТС] | 13 |
как же организовать удаление с условием?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
31.10.2010, 01:45 | 14 | ||||||||||
К примеру так.
0
|
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 51
|
||||||
31.10.2010, 01:51 [ТС] | 15 | |||||
или
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
31.10.2010, 01:52 | 16 | |||||
Если очень хочется через цикл то так. Или ваш вариант по сути вполне подойдет) Цикл там незачем.
0
|
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 51
|
|
31.10.2010, 01:57 [ТС] | 17 |
вот с циклом надо
просто суть в том что мне надо удалить повторяющиеся элементы я хочу сделать вложенный циклы во внешнем буду брать элемент и сравнивать его со всеми во внутреннем если он повторится более 2х раз то удаляю и тд ...это возможно организовать с итераторами или я мудрю?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
31.10.2010, 02:06 | 18 | |||||
cap, Есть метод unique.
Добавлено через 2 минуты Как-то так, если не напрягаться.
0
|
1 / 1 / 0
Регистрация: 27.10.2010
Сообщений: 51
|
|
31.10.2010, 02:08 [ТС] | 19 |
блин)точно) спасибо)
еще один вопрос работает он только числами или символами тоже?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
31.10.2010, 02:12 | 20 |
cap, Со всем. Хоть со строками. Список же шаблонный класс.
1
|
31.10.2010, 02:12 | |
31.10.2010, 02:12 | |
Помогаю со студенческими работами здесь
20
Удаление элемента из списка и поиск элемента Удаление элемента Удаление элемента из вектора Удаление элемента из массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |