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

Bind + string::front - C++

Восстановить пароль Регистрация
 
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.03.2014, 15:40     Bind + string::front #1
Почему я не могу это забиндить ?:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
 
int main()
{
   using namespace std::placeholders;
   using std::string;
 
   std::vector<string> v {"abc", "anc", "abv", "alm", "amc"};
   std::cout << std::count_if(v.begin(), v.end(), std::bind(std::equal_to<char>(),
                                                  std::bind(&string::front, _1),
                                                  std::bind(&string::back,  _1) ));
 
   return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 15:40     Bind + string::front
Посмотрите здесь:

std::bind C++
C++ Где применяется bind
Удаление элементов из vector; bind или not1 C++
C++ С++ или Front-end - разработка!?
C++ bind + map
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
13.03.2014, 15:47
  #2

Не по теме:

Страшно-то как... Не проще лямбду написать?)

DiffEreD
13.03.2014, 15:50  [ТС]
  #3

Не по теме:

Проще лямбду, но я хочу понять почему через bind не хочет.

Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.03.2014, 16:01     Bind + string::front #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
из-за перегрузок
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
 
int main()
{
   using namespace std::placeholders;
   using std::string;
 
   std::vector<string> v {"aba", "anc", "abv", "mlm", "amc"};
   const char& (std::string::*front)() const = &std::string::front;
   const char& (std::string::*back)() const = &std::string::back;
   
   std::cout << std::count_if(v.begin(), v.end(), std::bind(std::equal_to<char>(),
                                                  std::bind(front, _1),
                                                  std::bind(back,  _1) ));
 
   return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.03.2014, 16:10  [ТС]     Bind + string::front #5
Понятно.
Yandex
Объявления
13.03.2014, 16:10     Bind + string::front
Ответ Создать тему
Опции темы

Текущее время: 08:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru