Я пытаюсь использовать unordered_set
из библиотеки C ++ std. Я использую пространство имен std.
using namespace std;
unordered_set
в моей функции. Я хотел бы использовать его для запоминания некоторых значений.
int do_crazy_calculations(int n) {
static unordered_set<int> done_before;
done_before::iterator node_found = done_before.find(n);
// n has not been seen before, so do calculations and memoize the result.
if (node_found == done_before.end()) {
int result = actually_do_calculations(n);
done_before.insert(n, result);
return result;
}
// n has already been seen before, just return the memoized value.
else {
return node_found.get();
}
}
Однако я получаю эту ошибку компиляции:
CplusplusExperiment.cpp: в функции 'int do_crazy_calculations(int)'
:
CplusplusExperiment.cpp: 10: 10: ошибка: 'unordered_set'
не называет тип
make: *** [CplusplusExperiment.o] Ошибка 1
Однако я присвоил тип unordered_set
- int
верно? Что означает эта ошибка?