AI 24/25 Project Software
Documentation for the AI 24/25 course programming project software
Loading...
Searching...
No Matches
evaluator_cache.h
1#ifndef EVALUATOR_CACHE_H
2#define EVALUATOR_CACHE_H
3
4#include "downward/evaluation_result.h"
5
6#include <unordered_map>
7
8class Evaluator;
9
10using EvaluationResults = std::unordered_map<Evaluator*, EvaluationResult>;
11
12/*
13 Store evaluation results for evaluators.
14*/
15class EvaluatorCache {
16 EvaluationResults eval_results;
17
18public:
19 EvaluationResult& operator[](Evaluator* eval);
20
21 template <class Callback>
22 void for_each_evaluator_result(const Callback& callback) const
23 {
24 for (const auto& element : eval_results) {
25 const Evaluator* eval = element.first;
26 const EvaluationResult& result = element.second;
27 callback(eval, result);
28 }
29 }
30};
31
32#endif