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

удаление элемента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа вычисляющая функцию http://www.cyberforum.ru/cpp-beginners/thread184113.html
Написать на языке СИ++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью e=0,001. Значение переменной x вводить с клавиатуры. Предусмотреть проверку (при необходимости)...
C++ Вводятся числа a и b. Найти количество чисел в диапазоне [a;b], у которых последняя цифра равна 7. Помогите пожалуйста с программой. Задание: Вводятся числа a и b. Найти количество чисел в диапазоне , у которых последняя цифра равна 7. http://www.cyberforum.ru/cpp-beginners/thread184101.html
Использование двумерного динамического массива C++
Здравствуйте, уважаемые форумчане. Такой вопрос: я объявил двумерный дин. массив, выделил, память, сделал с ним что-то int **arr = new int*; for (int i = 0; i < n; i++) { arr = new int; }...
C++ программа с использованием масcива
Даны: натуральное число n и целые числа : a(1),a(2),...a(n) . Не делая распределение всего масcива,найти 3-е наибольшее из этих чисел.Помогите не получается(
C++ классы http://www.cyberforum.ru/cpp-beginners/thread184061.html
Задание 1. Создайте класс "Точка" на координатной плоскости. Данные класса - координаты точки по осям. Класс имеет конструктор за умалчиванием (начало координат), конструктор точки, которая лежит на...
C++ Промежутки На вход подается интервал, полуинтервал или отрезок. ( (x, y) or or ) Где х представлено как a/b, у как c/d. a, c -целые, b, d - положительные. Если b и (или) d ==1 то записывается просто a и... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
31.10.2010, 01:07
PointsEqual, Листовский устроен по другому видать. По сути удаляем мы в векторе, массиве. Там нам действительно надо переместить элементы и последний всегда должен существовать.
Список. Мы удаляем узел, соединяем предыдущий с последующим и последующий с предыдущим. Перемещение элементов в списке, дабы удалить несколько или один - бессмысленная операция.
Но это как я это вижу. Ну да. Оказалось, что я почти прав.
Пруф: list->remove
В еще большее подтверждение определение list::remove в MSVS 2008.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    void remove(const _Ty& _Val_arg)
        {   // erase each element matching _Val
        /* Dinkumware makes a copy of _Val_arg in case it's removed along the way, i.e.
         * when the user pass an element of the list as _Val_arg.
         *
         * We believe that the signature of std::list::remove should be changed
         * from remove(const _Ty&) to remove(_Ty) to explicitly indicate that a copy is involved.
         */
        const _Ty _Val = _Val_arg;  // in case it's removed along the way
        iterator _Last = end();
        for (iterator _First = begin(); _First != _Last; )
            if (*_First == _Val)
                _First = erase(_First);
            else
                ++_First;
        }
и list::remove_if соответственно
C++
1
2
3
4
5
6
7
8
9
10
    template<class _Pr1>
        void remove_if(_Pr1 _Pred)
        {   // erase each element satisfying _Pr1
        iterator _Last = end();
        for (iterator _First = begin(); _First != _Last; )
            if (_Pred(*_First))
                _First = erase(_First);
            else
                ++_First;
        }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru