Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2012, 17:41   #1
ProgRoman
 
Регистрация: 12.01.2012
Сообщений: 4
По умолчанию Массив функций

Всем привет, подскажите что не так у меня есть несколько функций и мне затем их надо будет вызывать из массива ниже приведена часть кода
Код:
double mlcalcdistKamberra(const Mat &v1, const Mat &v2)
{
	double sq=0;
	double sm=0;
	int n = v1.size().area();

	for(int i=0; i<n; i++)
	{
		sq+=abs(v1.at<double>(i)-v2.at<double>(i));
		sm+=abs(v1.at<double>(i)+v2.at<double>(i));
	}
	return sq/sm;
}

double mlcalcdistE(const Mat &v1, const Mat &v2)
{
	double sq=0;
	int n=v1.size().area();

	for (int i=0; i<n; i++)
	{
		sq+=(v1.at<double>(i)-v2.at<double>(i))*(v1.at<double>(i)-v2.at<double>(i));
	}
	return sqrt(sq);
}

int _tmain(int argc, _TCHAR* argv[])
{
       vector<double> h(2);
	
	h[0] = &mlcalcdistE;
	h[1] = &mlcalcdistKamberra;
        return 0;
}
но возникает ошибка...
Цитата:
Ошибка 22 error C2440: =: невозможно преобразовать "double (__cdecl *)(const cv::Mat &,const cv::Mat &)" в "double" c:\documents and settings\\мои документы\visual studio 2010\projects\\qpoptimizationsmo.cp p 641 1 QPoptimizationSMO
так-то я понимаю что делаю что-то не правильно, но не знаю как правильно в массив..(вектор) записывать ссылки на функции и потом их вызывать к примеру в цикле...
(Mat -это встроенные классы OpenCV библиотеки)
ProgRoman вне форума Ответить с цитированием
Старый 02.04.2012, 17:46   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

alenacpp.blogspot.com/2007/04/blog-post.html
zotox вне форума Ответить с цитированием
Старый 02.04.2012, 17:56   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2ProgRoman
Код:
vector<double (*)(const Mat &, const Mat &)> h(2);
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 02.04.2012 в 18:17.
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi: аппроксимация функций методом базиса из финитных функций Denna Помощь студентам 1 12.03.2012 19:23
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Как ввести массив с помощью обобщенного программирования и std library функций? Olga_CS Общие вопросы C/C++ 0 29.05.2009 05:56
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25