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

На что ссылается итератор после remove(*it) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Односвязный список. Узел-запись о книге в библиотеке. http://www.cyberforum.ru/cpp-beginners/thread534143.html
Односвязный список. Узел-запись о книге в библиотеке: автор, название, имееться ли в наличии(если нет то фамилия читателя,которому выдана). Создать отдельный список книг свободных. Распечатать новый список!! С++ Помогите пожалусто.... Заранее спасибо
C++ Visual studio open dialog подскажите как работает в Visual studio 10 open dialog в delphi. (появляется окно что бы выбрать файл для открытия) никак не могу разобраться. http://www.cyberforum.ru/cpp-beginners/thread534140.html
Задача по теме функции C++
Мне дали задачу: на языке с++ записать объявления функций, выполняющих заданные действия. Написать функцию main, содержащую примеры вызовов объявленных функций с выводом результатов в консоль: 1) определить индекс наибольшего элемента в одномерном массиве. 2) удалить из строи указанный символ. я смог сделать только первый пункт. помогите сделать пожалуйста. заранее спасибо вот первый...
C++ Определить индекс наибольшего элемента в одномерном массиве
Мне дали задачу: на языке с++ записать объявления функций, выполняющих заданные действия. Написать функцию main, содержащую примеры вызовов объявленных функций с выводом результатов в консоль: 1) определить индекс наибольшего элемента в одномерном массиве. 2) удалить из строи указанный символ. я смог сделать только первый пункт. помогите сделать пожалуйста. заранее спасибо вот первый...
C++ Работа с документами word http://www.cyberforum.ru/cpp-beginners/thread534097.html
Доброе время суток форумчане! Подскажи, как мне легче решить проблему: нужно открыть документ word(doc,docx) как текст, что-бы он был доступен в проекте!
C++ Перевод галлона в кубический фут Помогите написать программу Считая, что кубический фут равен 7,481 галлона, написать программу, запрашивающую у пользователя число галлонов и выводящую на экран эквивалентный объем в кубических футах подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.03.2012, 00:21     На что ссылается итератор после remove(*it)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    void remove(const _Ty& _Val_arg)
        {   // erase each element matching _Val
        const _Ty _Val = _Val_arg;  // in case it's removed along the way
        const _Nodeptr _Phead = this->_Myhead;
        _Nodeptr _Pnode = this->_Nextnode(_Phead);
 
        while (_Pnode != _Phead)
            if (_Pnode->_Myval == _Val)
                {   // match, remove it
                const _Nodeptr _Pprev = this->_Prevnode(_Pnode);
                const _Nodeptr _Perase = _Pnode;
                _Pnode = this->_Nextnode(_Pnode);
 
                this->_Nextnode(_Pprev) = _Pnode;
                this->_Prevnode(_Pnode) = _Pprev;
                this->_Freenode(_Perase);
 
                --this->_Mysize;
                }
            else
                _Pnode = this->_Nextnode(_Pnode);
        }
Реализация из студии.
Но то, что использоваться это не стоит и что при первом же изменении итератор станет недействительным согласен.

Добавлено через 4 минуты
Признаю свою неправоту.
15 Effects: Erases all the elements in the list referred by a list iterator i for which the following conditions
hold: *i == value, pred(*i) != false. Invalidates only the iterators and references to the erased
elements.
16 Throws: Nothing unless an exception is thrown by *i == value or pred(*i) != false.
17 Remarks: Stable.
18 Complexity: Exactly size() applications of the corresponding predicate.
 
Текущее время: 07:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru