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

Не удаляет все положительные элементы из вектора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Методом вставки упорядочить список по возрастанию и удалить из отсортированного списка положительные элементы http://www.cyberforum.ru/cpp-beginners/thread1215981.html
создать односвязный линейный список чисел. Методом вставки упорядочить список по возрастанию и удалить из отсортированного списка все положительные элементы. Вывести полученный список
C++ Структура "Студент" в бинарном файле в бинарном файле содержащий данные о фамилии студентов и их средние баллы найти таких студентов средний балл которых самый меньший http://www.cyberforum.ru/cpp-beginners/thread1215977.html
Заданный ориентированый граф с N вершинами. Рассчитать количество разных путей между парами вершин графа С++ C++
Помогите пожалуста,,
Из строки удалить слова, номера которых четные C++
из строки удалить слова, номера которых четные. Среди слов с непарными номерами определить самое длинное
C++ Проверить является ли заданный граф связным http://www.cyberforum.ru/cpp-beginners/thread1215965.html
Проверить есть ли заданный граф связным
C++ Методом вставки упорядочить односвязный список по возрастанию и удалить из него все положительные элементы создать односвязный линейный список целых чисел. Методом вставки упорядочить список по возрастанию и удалить из отсортированного списка все положительные элементы. Вывести полученный список подробнее

Показать сообщение отдельно
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
24.06.2014, 16:51  [ТС]     Не удаляет все положительные элементы из вектора
std::remove_if - вернет мне итератор преобразованного вектора, в котором все элементы, для которых "предикат" равен фолс, перенесены в конец вектора.
Возвращает нам итератор начала этой части, которую нужно удалить.
Затем с помощью erase удаляем этот кусок.
Чёрт, пока я это писала, то поняла, где зафейлила.

Добавлено через 1 минуту
Я не дописала итератор конца того куска, который нужно удалить. Вот и "ирейзился" только первый положительный элемент...

C++
1
m.erase(std::remove_if(m.begin(), m.end(), if_positive), m.end());
Вот так работает.
 
Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru