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

Удаление элементов из vector; bind или not1 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скопировать поток и добавить ошибки в поток http://www.cyberforum.ru/cpp-beginners/thread934887.html
Здорова господа! Есть задачка: "Скопируйте поток объектов типа Name_and_address и вставьте в него столько ошибок, сколько сколько сумеете придумать (например, ошибки форматирования, или ошибочное...
C++ getch() error Привет всем, такое дело, не работает getch()! Вот, что пишет: C:\Users\AKHURS\Desktop\tetris_start.cpp:122: implicit declaration of function `int getchar(...)' conio.h подключил http://www.cyberforum.ru/cpp-beginners/thread934882.html
C++ Запись в массив не то что нужно
Мне нужно сверять два слова на руском, и вот когда я ввожу в масив на руском и вывожу все нормально но когда сверяю с другим руским слвоом тут начинаються проблемы, потому что всегда в масив...
C++ Подключение сторонней библиотеки
Всем добрый день! Подскажите, пожалуйста, как можно подключить C библиотеку .so к файлам C++? Собираю все средствами gcc, Unix-like OS. Спасибо!)
C++ Проверка введенных символов http://www.cyberforum.ru/cpp-beginners/thread934868.html
Привет. Мне нужно сделать переводчик с руского на английский и с английского на руский. У меня есть база с словами и переводами к ним и когда я хоч проверить руское слово с тем что ввел...
C++ Разгадать мысли Либерти Помогите, пожалуйста, понять смысл использования 36-ой строки в этом листинге. #include "stdafx.h" #include <fstream> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR*... подробнее

Показать сообщение отдельно
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2

Удаление элементов из vector; bind или not1 - C++

07.08.2013, 17:31. Просмотров 586. Ответов 4
Метки (Все метки)

Как правильно забиндить, - сделать аналог, как через лямбду. Или же тут больше подойдет использование not1 (или not2). Не могу сам разобраться. Вот код:
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
 
class A
{
    std::string m_ext;
public:
    A(const char* e) : m_ext(e) {}
    std::string extension() const {return m_ext;}
    void print() const {std::cout << m_ext << std::endl;}
};
 
using namespace std::placeholders;
 
int main()
{
    std::vector<A> v {"txt", "txt", "pro", "pro", "jpg"};
    for (auto& a : v) a.print();
    
    //в векторе должны остаться только объекты с именем "pro"
    //v.erase(std::remove_if( v.begin(), v.end(), [](const A& a){return a.extension() != "pro";}), v.end());
    v.erase(std::remove_if( v.begin(), v.end(), std::bind(&A::extension, std::not_equal_to<A>, _1, _2, "pro") ), v.end());
    //v.erase(std::remove_if( v.begin(), v.end(), std::not1(std::mem_fn(&A::extension), _1, "pro") ), v.end());
    
    std::cout << std::endl;
    for (auto& a : v) a.print();
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru