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

Указатель на функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка Установки http://www.cyberforum.ru/cpp-beginners/thread968934.html
Visual Studio C# Express. Не устанавливается почему то VC 9.0 Runtime, перепробовал уже все, в чем может быть проблема? http://cs419019.vk.me/v419019580/beab/tY5oYYLd0Mk.jpg
C++ Ошибка с подключением библиотек iostream.h в MinGW Помогите разобраться. Не получается подключить библиотеки iostream.h. В среде MinGW 2.1 #include <iostream.h> #include <windows.h> using namespace std; void main { int x,y,z,min; cout << "X = "; cin >> x; cout << "Y = "; cin >> y; cout << "Z = "; cin >> z; http://www.cyberforum.ru/cpp-beginners/thread968913.html
Удаление элемента из очереди C++
Здравствуйте, проблема с очередями, совсем их не понимаю, перечитал много статей все равно не доходит.( Задание: Удалить каждый второй элемент из очереди. Правдами не правдами написал часть кода, осталось дописать удаление каждого второго элемента, помогите пожалуйста.#include <conio.h> #include <iostream> using namespace std; struct Item { int info; Item* next; };
C++ Написать алгоритм для вычисления заданной функции:
Написать алгоритм для вычисления заданной функции: |0, x≤0 F(x)= |x, 0<x≤1 |x*x, x>1 Заранее спасибо!
C++ решение задач с использованием конструкции ветвления http://www.cyberforum.ru/cpp-beginners/thread968908.html
1. В заборе выпилена дыра прямоугольной формы с известными размерами. Определить, пройдёт ли в эту дыру мяч заданного радиуса. 2. Определить D и М-дату К-го по счету дня високосного года. Месяц вывести в словесной форме. D - день, М - месяц. Предусмотреть, что 1 ≤ К ≤ 366. помогите пожалуйста(((
C++ Решение задач с использованием конструкции ветвления Даны действительные числа x, y и z. Найти min(x, y, z). И как-то написать на языке С++ Помогите разобраться. Мне нужно построить алгоритм ветвления, Я понимаю что он из себя представляет, но как его строить по данному методу как-то не понимаю. Было бы прекрасно, если можно было объяснить то, что вы пишите. Надеюсь, на вашу помощь. подробнее

Показать сообщение отдельно
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
04.10.2013, 18:54     Указатель на функцию
rebus7000, еще можно так осмыслить:
Например, есть такой алгоритм в стандартной библиотеке, как sort(iter_begin, iter_end, [pointer_to_func p]);
Так вот, необязательный параметр "р" - это может быть указатель на функцию, которая выполняет нужный вид сравнения ключей в массиве. Т.е. алгоритм sort() реализует семантику перебора диапазона [iter_begin; iter_end), а функция, адресуемая "р" уже определяет результат сравнения элементов из этого диапазона (например слова можно сортировать по длине, по алфавиту, натурально и т.д.)

Добавлено через 3 минуты
Пример. Только здесь вдобавок к функции еще и демонстрируется аналогичное использование функционального объекта, потому что их семантика одинакова
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
// sort algorithm example
#include <iostream>     // std::cout
#include <algorithm>    // std::sort
#include <vector>       // std::vector
 
bool myfunction (int i,int j) { return (i<j); }
 
struct myclass {
  bool operator() (int i,int j) { return (i<j);}
} myobject;
 
int main () {
  int myints[] = {32,71,12,45,26,80,53,33};
  std::vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33
 
  // using default comparison (operator <):
  std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33
 
  // using function as comp
  std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
 
  // using object as comp
  std::sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)
 
  // print out content:
  std::cout << "myvector contains:";
  for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';
 
  return 0;
}
 
Текущее время: 22:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru