Reader.h 594 B

123456789101112131415161718192021222324252627
  1. #ifndef READER_H
  2. #define READER_H
  3. #include <string>
  4. #include <unordered_map>
  5. #include <vector>
  6. class Reader final {
  7. int ids = 0;
  8. std::unordered_map<std::string, int> nameToId;
  9. std::vector<std::string> names;
  10. std::vector<std::vector<int>> distances;
  11. public:
  12. bool read(const char* path);
  13. void print() const;
  14. const std::string& getName(int id);
  15. const std::vector<int>& operator[](int x) const;
  16. int getSize() const;
  17. private:
  18. int getOrAddId(const std::string& s);
  19. std::string trim(const std::string& s) const;
  20. void distance(int column);
  21. };
  22. #endif