Advertisement
Petrovi4

Translator

Jul 31st, 2022
1,172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. class Translator {
  2. public:
  3.  
  4.     Translator() = default;
  5.  
  6.     void Add(std::string_view source, std::string_view target) {
  7.         words_.insert(std::string(source));
  8.         words_.insert(std::string(target));
  9.         forward_[*words_.find(std::string(source)) ] = *words_.find(std::string(target));
  10.         backward_[*words_.find(std::string(target))] = *words_.find(std::string(source));
  11.     }
  12.  
  13.     std::string_view TranslateForward(std::string_view source) const {
  14.         if (forward_.find(source) == forward_.end()) {
  15.             return "";
  16.         }
  17.         return forward_.at(source);
  18.     }
  19.  
  20.     std::string_view TranslateBackward(std::string_view target) const {
  21.         if (backward_.find(target) == backward_.end()) {
  22.             return "";
  23.         }
  24.         return backward_.at(target);
  25.        
  26.     }
  27.  
  28. private:
  29.     std::set<std::string> words_;
  30.     std::map<std::string_view, std::string_view> forward_;
  31.     std::map<std::string_view, std::string_view> backward_;
  32. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement