Форум программистов, компьютерный форум 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 галлона, написать программу, запрашивающую у пользователя число галлонов и выводящую на экран эквивалентный объем в кубических футах подробнее

Показать сообщение отдельно
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
29.03.2012, 21:11     На что ссылается итератор после 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <vcl>
#include <iostream>
#include <fstream>
#include <list>
#include <vector>
#include <string>
 
using namespace std;
 
 
 
// -----------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[]) {
    list<int> mylist;
    list<int>::iterator it1;
 
    for (int i = 1; i < 10; i++)
        mylist.push_back(i * 10);
 
    it1 = mylist.begin();
    it1++;
 
    while (*it1 < 70) {
        int it1_value = *it1;
        cout << "Before: " << it1_value << endl;
 
        mylist.remove(*it1);
 
        it1_value = *it1;
        cout << "After: " << it1_value << endl;
        it1++;
    }
 
    it1 = mylist.begin();
    cout << endl;
    for (;  it1 != mylist.end(); it1++)
        cout << *it1 << " " ;
    cout << endl;
    system("pause");
    return 0;
}
Вывод показывает, что после удаления элемента из списка и применения

C++
1
it1_value = *it1;
it1_value станет равным значению удаленного элемента. Его же (элемента) не существует. Нелогично.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru