Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Translator {
- public:
- Translator() = default;
- void Add(std::string_view source, std::string_view target) {
- words_.insert(std::string(source));
- words_.insert(std::string(target));
- forward_[*words_.find(std::string(source)) ] = *words_.find(std::string(target));
- backward_[*words_.find(std::string(target))] = *words_.find(std::string(source));
- }
- std::string_view TranslateForward(std::string_view source) const {
- if (forward_.find(source) == forward_.end()) {
- return "";
- }
- return forward_.at(source);
- }
- std::string_view TranslateBackward(std::string_view target) const {
- if (backward_.find(target) == backward_.end()) {
- return "";
- }
- return backward_.at(target);
- }
- private:
- std::set<std::string> words_;
- std::map<std::string_view, std::string_view> forward_;
- std::map<std::string_view, std::string_view> backward_;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement