C,
pasted
on Dec 10:
|
#include <iostream>
#include <unordered_map>
#include <functional>
#include <memory>
typedef std::function<int(int)> fib_func;
typedef std::shared_ptr<fib_func> fib_func_ptr;
fib_func_ptr fibonacci(const int n)
{
typedef std::pair<int, int> pair;
auto memoPtr = std::make_shared<std::unordered_map<int, int>>();
memoPtr->insert(pair(0, 0));
memoPtr->insert(pair(1, 1));
fib_func_ptr fibPtr = std::make_shared<fib_func>([memoPtr, fibPtr](const int n) {
auto it = memoPtr->find(n);
int result;
if (it == memoPtr->end()) {
fib_func& fib = *fibPtr;
result = fib(n - 1) + fib(n - 2);
(*memoPtr)[n] = result;
} else {
result = it->second;
}
return result;
});
return fibPtr;
}
int main()
{
std::function<int(int)>& fibonacci = *(fibonacci(13));
std::cout << fibonacci(13) << std::endl;
std::cin.get();
}
|
Output:
|
Line 19: error: iostream: No such file or directory
Line 24: error: unordered_map: No such file or directory
Line 21: error: functional: No such file or directory
Line 17: error: memory: No such file or directory
Line 6: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
Line 7: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
Line 9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fibonacci'
In function 'main':
Line 40: error: expected expression before ':' token
Line 42: error: duplicate label 'std'
Line 40: error: previous definition of 'std' was here
Line 42: error: expected expression before ':' token
Line 44: error: duplicate label 'std'
Line 40: error: previous definition of 'std' was here
Line 44: error: expected expression before ':' token
|
|