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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Аиас
17 / 17 / 1
Регистрация: 13.02.2011
Сообщений: 107
#1

Умная Функция - C++

21.04.2011, 20:40. Просмотров 350. Ответов 3
Метки нет (Все метки)

Есть функция которая в зависимости от входных параметров, делает сложные вычисления, а потом выдаёт результат.
Как можно реализовать, чтобы функция проверяла, запрашивался ли этот ряд входных параметров ранее, и если да то выдавать уже готовый результат, который был вычислен ранее, а если нет, то уже производить вычисления полностью?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 20:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умная Функция (C++):

Функция удаления текста в скобках [2], непосредственно функция + 12кб вложений - C++
Доброго времени суток, случилось так, что пришлось работать с с-строками (лаба, угу), в которой нужно удалить весь текст в скобках,...

Перегрузка операций: friend-функция или функция-член класса - C++
Здравствуйте, меня интересует вопрос, в чем разница при перегрузке операторов через operator и friend. Вот к примеру такой код. class...

Функция sqrt: существует более одного экземпляра. Функция перегруженная - C++
#include <iostream> #include <math.h> #include <iomanip> using namespace std; int main(){ float s, p; int c, a; s=0; ...

какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get() - C++
какую библиотеку надо подключать чтоб работала функция _getch() и функция cin.get()

Чистая виртуальная функция функция не имеет оператора переопределения - C++
Пишу программу для записи заметок. Есть 2 класса: Page и Note. Note наследуется от Page. Page.h #pragma once ...

что за функция такая strstr? или это не функция? - C++
void search(sp *list){ sp *prt = list; char f,r; cout<<Rus("введите текст")<<endl; cin>>f; cout<<Rus("введите выходной...

3
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.04.2011, 20:46 #2
Возможно, хранить статический список списков входных параметрови и при каждом вызове сверять входной список со всем узлами статического, и при совпадении выдавать вычисленный результат (его в том же списке хранить). Можно даже ассоциативный контейнер заюзать какой-нибудь.
0
while(i)k++
48 / 48 / 5
Регистрация: 13.08.2010
Сообщений: 160
21.04.2011, 20:50 #3
в С++ есть такое понятие как static переменная на уровне функции, такая переменная сохраняет свое значение между вызовами функции
чот типо
class tmp
{
public:
tmp(int _a, int _b): a(_a), b(_b){}
int a;
int b;
bool operator==(const tmp& x, const tmp& y)
{
return x.a == y.a && x.b == y.b;
}
}
int f(int a, int b)
{
static dictionary<tmp, int> d;
if(!d.contayns(tmp(a,b)))d.add(tmp(a,b), a+b);
return d[tmp(a,b)];
} //не помню как там dictionary в С++ юзается, но суть думаю ясна
2
Аиас
17 / 17 / 1
Регистрация: 13.02.2011
Сообщений: 107
21.04.2011, 21:06  [ТС] #4
Цитата Сообщение от silent_1991 Посмотреть сообщение
Возможно, хранить статический список списков входных параметрови и при каждом вызове сверять входной список со всем узлами статического, и при совпадении выдавать вычисленный результат (его в том же списке хранить). Можно даже ассоциативный контейнер заюзать какой-нибудь.
Думаю можно попробовать, я сам об этом думал, но не хотелось бы перебирать этот список параметров прямым перебором, если это массив. А ассоциативный контейнер это хорошая идея, только надо будет с ним еще разобраться по лучше.
+
+
[B]2: while(i)k++[B] - Спасибо, буду разбираться!
0
21.04.2011, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2011, 21:06
Привет! Вот еще темы с ответами:

Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов - C++
Write программу с использованием класса Вектор (не без помощи форумчанина), но необходимо создать производный класс, в котором реализована...

Функция заполняющая массив и функция вывода массива - C++
Напишите две функции. Первая функция заполняет массив, вторая функция выводит массив на экран

Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива - C++
Есть программа #include &lt;iostream&gt; #include &lt;algorithm&gt; const int N = 5; int handSet(void) { int a; std::cout...

Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел - C++
Разработать заданные согласно условия функции и сделать в главной программе по два вызова этих функций с различными параметрами. Для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru