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

Метод remove_if STL - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Атрибуты прав при создании директории http://www.cyberforum.ru/cpp-beginners/thread641213.html
Пишу mkdir("dir0777",0777); mkdir("dir0770",0770); mkdir("dir0707",0707); mkdir("dir0077",0077); Для владельца - права устанавливаются правильно. Для группы и "остальных" - для всех директорий оказывается нет права на запись. В чём дурь?
C++ Бинарные деревья Имею три файла: Скажите пожалуйста почему я не могу создать э-т m?(Класс tree) Он мне пишет - undefined reference to `tree::~tree()' undefined reference to `tree::~tree()' ld returned 1 exit status Error 1 main.cpp # include "binaryTree.h" http://www.cyberforum.ru/cpp-beginners/thread641208.html
Организация цикла С++ C++
Добрый день. Нужно организовать ниже приведенный код таким образом чтобы программа никогда не выводила более 10 чисел в одной строке, и организовать это при помощи инструкции while или for, и без участия if (а также без логического оператора !, и арифметического оператора деление по модулю %). Как мне кажется, осуществить это можно при помощи вложений одного цикла в другой, но знаний для этого у...
Нужна подсказка в отладке C++
Здравствуйте! Не знаю как правильно сравнить вводимое число типа double (number_1) с символом '|' (29-30 строчка). Если ввести в формате |m после первого правильно введённого числа, то программа просто записывает первое значение во все последующие ячейки. Если ввести первым числом - программа зацикливается. Если ввести первым числом в формате 9|, то после 51 строки вылазит "This aplication...
C++ Функция поиска подстроки в строке http://www.cyberforum.ru/cpp-beginners/thread641136.html
int CChar::strpos(char* sub, char* str) { char* temp = new char; int t=0; for(int i=0; i<strlen(str); i++) { while(str==sub) temp = str;
C++ Генератор чисел числа до 100 помещаются в контейнер, перемешиваются и по нажатии <1>+Enter выводит на экран "генерирование число", после чего программа закрывается....что нужно добавить, что бы она не закрывалась и можно было дальше вводить <1>+Enter и получать новое "генерированные" числа? #include <iostream> #include <vector> #include <ctime> using namespace std; int main() { подробнее

Показать сообщение отдельно
Andsteadur
153 / 137 / 3
Регистрация: 23.05.2009
Сообщений: 275
23.08.2012, 14:24     Метод remove_if STL
тут потерялась одна скобка
C++
1
listchannel.erase (std::remove_if(listchannel.begin(), listchannel.end(), Functor(cable_tv)), listchannel.end());
remove_if "переносит" все подходящие под условие элементы в конец контейнера, не удаляя их, а возвращает итератор на первый такой элемент. соответственно начиная с позиции, на которую ссылается итератор и до конца находятся тех элементы, которые нужно удалить. Соответственно мы вызываем erase, чтобы действительно удалить эти элементы.

т.е. предположим есть контейнер со следующими данными

C++
1
v = { 0, 1, 3, 6, 3, 2, 11, 3, 5, 6}
после вызова remove_if для удаления всех элементов 3 контейнер будет таким

C++
1
2
3
4
v = {0, 1, 6, 2, 11, 5, 6, 3, 3, 3}
                           ^
                           |
                     remove_if вернет итератор на этот элемент
Соответственно, нам нужно вызвать erase начиная с этого итератора и заканчивая концом вектора.
 
Текущее время: 11:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru