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

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

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

list не работает erase - C++

29.04.2012, 04:16. Просмотров 971. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void in_out_Park(list<Bus> &in, list<Bus> &out) 
{   
    int n, i=0;
    Bus temp;
    cout<<"Введите номер автобуса: "; cin>>n;
    list<Bus>::iterator p_in=in.begin();
    while(p_in!=in.end())
    {
        if(n==p_in->BusNumber)
        {
            temp.BusNumber=p_in->BusNumber;
            temp.RouteNumber=p_in->RouteNumber;
            temp.Vodila=p_in->Vodila;
            out.push_back(temp);
            in.erase(p_in); // при выполнении тут выползает "list iterator not incrementable"       
        }
        p_in++;
    };  
}
что не так сделал?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 04:16     list не работает erase
Посмотрите здесь:

метод erase для list(STL) - C++
Всем привет! Не могу понять в чем у меня ошибка. Применяю метод erase в цикле для list, и с помощью него удаляю нужный элемент, но...

Не правильно работает erase + remove - C++
мне надо удалить из строки все пробелы, я сделал так: std::string expr; ... expr.erase(std::remove(expr.begin(), expr.end(), ' ')); ...

Не работает sort с предикатом для list в VS2010 - C++
Компилит, но в ходе выполнения ошибка. http://i67.***********/big/2014/1130/0c/ff16385e785d46f0ae1e155ed656ec0c.jpg Функция сравнения: ...

Неправильно работает конструктор копирования list, почему? - C++
#include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &lt;list&gt; #include &lt;iterator&gt; #include &lt;iostream&gt; using namespace std; list...

.erase() в массиве. - C++
есть массив вектор например: vector&lt; pair&lt;char,int&gt; &gt; k; k.second мне надо его удалить как воспользоваться функции k.erase() ;...

vector.erase - C++
Помогите пожалуйста с синтаксисом удаления любого элемента из вектора Вот тут ошибка: #include &lt;vector.h&gt; void main() { ...

Erase map - C++
Добрый день, мне необходимо удалить из MAP некоторое количество элементов, сейчас я делаю это вот так, но как то не очень красиво for (i...

vector::erase()? - C++
есть вектор структур struct person{ string name; int age; vector &lt;person&gt; repw;

вектор алгоритм erase - C++
Доброго всем времени суток.Пожалуйста подскажите чайнику.Пытаюсь из контейнера убрать лишние данные с помощью erase ,но ничего не...

Шаблоны: insert, erase - C++
У меня проблема, как именно нужно описать main и проблема с функцией insert, мне сказали, что в ней может не быть места, чтобы вставить...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.04.2012, 05:21     list не работает erase #2
C++
1
2
3
   p_in = in.erase(p_in);
}
else p_in++;
А ошибка вываливалась из-за того, что после удаления элемента итератор становился невалидным.
RaTeN
0 / 0 / 0
Регистрация: 14.11.2010
Сообщений: 10
29.04.2012, 11:03  [ТС]     list не работает erase #3
спасибо)
Ответ Создать тему
Опции темы

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