Var: replace struct by a pair

This commit is contained in:
Tiago Gomes 2013-03-09 16:18:13 +00:00
parent 532654baba
commit d563fce952
2 changed files with 8 additions and 23 deletions

View File

@ -5,7 +5,7 @@
namespace Horus {
std::unordered_map<VarId, VarInfo> Var::varsInfo_;
std::unordered_map<VarId, Var::VarInfo> Var::varsInfo_;
Var::Var (const Var* v)
@ -51,7 +51,8 @@ std::string
Var::label() const
{
if (Var::varsHaveInfo()) {
return Var::getVarInfo (varId_).label;
assert (Util::contains (varsInfo_, varId_));
return varsInfo_.find (varId_)->second.first;
}
std::stringstream ss;
ss << "x" << varId_;
@ -64,7 +65,8 @@ States
Var::states() const
{
if (Var::varsHaveInfo()) {
return Var::getVarInfo (varId_).states;
assert (Util::contains (varsInfo_, varId_));
return varsInfo_.find (varId_)->second.second;
}
States states;
for (unsigned i = 0; i < range_; i++) {
@ -87,15 +89,6 @@ Var::addVarInfo (
VarInfo
Var::getVarInfo (VarId vid)
{
assert (Util::contains (varsInfo_, vid));
return varsInfo_.find (vid)->second;
}
bool
Var::varsHaveInfo()
{

View File

@ -12,19 +12,11 @@
namespace Horus {
struct VarInfo {
VarInfo (std::string l, const States& sts)
: label(l), states(sts) { }
std::string label;
States states;
};
class Var {
public:
Var (const Var*);
Var (VarId, unsigned, int = Constants::unobserved);
Var (VarId, unsigned range, int evidence = Constants::unobserved);
virtual ~Var() { };
@ -57,13 +49,13 @@ class Var {
static void addVarInfo (
VarId vid, std::string label, const States& states);
static VarInfo getVarInfo (VarId vid);
static bool varsHaveInfo();
static void clearVarsInfo();
private:
typedef std::pair<std::string, States> VarInfo;
VarId varId_;
unsigned range_;
int evidence_;