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

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

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

Функция Erase класса vector - C++

29.05.2014, 19:32. Просмотров 445. Ответов 4
Метки нет (Все метки)

Нужно удалить из вектора, в котором объекты авторского класса, объекты с весом более 300.
Написал цикл, но при запуске пишет Iterators Incompatible
C++
1
2
3
4
5
6
7
8
9
ps = fruits.begin();
    do
    {
        if (!count_if (fruits.begin(), fruits.end(), check300))
            break;
        ps = find_if(ps, fruits.end(), check300);
        if (ps != fruits.end())
            fruits.erase(ps);
    }while (ps != fruits.end());
Функция поиска работает корректно, выводя нужные мне записи
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (count_if (fruits.begin(), fruits.end(), check300) != 0)
    {
        cout << "Founded fruits:" << endl;
        ps = fruits.begin();
        while(ps != fruits.end())
        {
            ps = find_if(ps, fruits.end(), check300);
            if (ps != fruits.end())
            {
                cout << *ps << endl;
                ps++;
            }
        }
    }
    else
        cout << "Fruits not founded!" << endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 19:32     Функция Erase класса vector
Посмотрите здесь:

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

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

std::vector::erase - C++
Всем привет. Буду очень рад, если кто-нибудь может мне объяснить логику... см. скриншот....

функция для класса Vector - C++
я написала класс полиномов 4й степени, сделала по нему калькулятор - все работает. создала класс вектор для объектов класса полином -...

Крах при vector.erase() - C++
Всё вроде бы работает так, как мне надо...но когда остаётся 1 элемент и его нужно очистить, программа крашится. Что я сделал не так? ...

Vector <bool> erase iterator outside range - C++
Помогите, пожалуйста. При компиляции появляется ошибка (фото ниже). Это реализация алгоритма Хаффмана. Не могу понять, что не так, по...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,065
Записей в блоге: 3
Завершенные тесты: 1
29.05.2014, 20:05     Функция Erase класса vector #2
а так?
C++
1
ps = fruits.erase(ps);
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
29.05.2014, 21:57  [ТС]     Функция Erase класса vector #3
Пробовал, выкидывает _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.05.2014, 22:15     Функция Erase класса vector #4
std::remove_if
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2014, 22:18     Функция Erase класса vector
Еще ссылки по теме:

Ошибка в функции erase для vector - C++
cout &lt;&lt; &quot;How much numbers? : &quot;; int n; cin &gt;&gt; n; vector&lt;int&gt;array(n); for (int i = 0; i &lt; n; i++) { cin &gt;&gt; array; ...

Ошибка при использовании erase для std::vector - C++
Почему в случае удаления элемента из вектора с помощью передачи итератора в erase, который соответствует позиции удаляемого элемента...

Ошибка “vector<bool> erase iterator outside range” при работе алгоритма Хаффмана - C++
Проблема с функцией BuildTable. Компилируется, но в процессе работы возникает ошибка. // Huffmann.cpp: определяет точку входа для...

Функция erase в делении длинных чисел - C++
Выполняя работу по курсу программирования, встретил в коде деления длинных чисел такую строку erase: subtrahend.erase(subtrahend.size()...

String одна функция вместо erase+append - C++
Всем привет. Поискал, вроде нет такой функции, но вдруг есть. const string::size_type position = wbuffer.find_last_of(L'\\'); ...

Шаблон класса вектор с операциями индексации и функциями insert и erase - C++
У меня есть задача. функции erase и insert я реализовала. но чтобы они работали нужно написать LOL&amp; operator(int); Задача звучит...


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

Или воспользуйтесь поиском по форуму:
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
29.05.2014, 22:18  [ТС]     Функция Erase класса vector #5
Mr.X, спасибо, c remove_if я делал, работает, но нужно именно с erase
Yandex
Объявления
29.05.2014, 22:18     Функция Erase класса vector
Ответ Создать тему
Опции темы

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