osrm-backend/DataStructures/LevelInformation.h
2011-04-15 16:36:12 +00:00

50 lines
988 B
C++

/*
* LevelInformation.h
*
* Created on: 10.03.2011
* Author: dennis
*/
#ifndef LEVELINFORMATION_H_
#define LEVELINFORMATION_H_
#include <vector>
class LevelInformation {
public:
LevelInformation() {
levelInfos = new std::vector<std::vector<unsigned> >();
}
~LevelInformation() {
delete levelInfos;
}
void Add(const unsigned level, const unsigned entry) {
if(levelInfos->size() <= level)
levelInfos->resize(level+1);
assert(levelInfos->size() >= level);
(*levelInfos)[level].push_back(entry);
}
unsigned GetNumberOfLevels() const {
return levelInfos->size();
}
std::vector<unsigned> & GetLevel(unsigned level) {
if(levelInfos->size() <= level)
levelInfos->resize(level+1);
assert(levelInfos->size() >= level);
return (*levelInfos)[level];
}
void Reset() {
delete levelInfos;
levelInfos = new std::vector<std::vector<unsigned> >();
}
private:
std::vector<std::vector<unsigned> > * levelInfos;
};
#endif /* LEVELINFORMATION_H_ */