shushus

Спринт 8. Можем лучше: совершенствуем парсинг строки. Задание 2.

Feb 2nd, 2023
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. -----------------------------------------------------------------------
  2. main.cpp
  3. -----------------------------------------------------------------------
  4. #include <string_view>
  5. #include <map>
  6. #include <cassert>
  7. #include <string>
  8.  
  9. using namespace std;
  10.  
  11. class Translator {
  12. public:
  13.     Translator() = default;
  14.    
  15.     void Add(string_view source, string_view target){
  16.         russ_word_to_eng_word_[(string)(source)] = target;
  17.         eng_word_to_russ_word_[(string)(target)] = source;
  18.     }
  19.    
  20.     string_view TranslateForward(string_view source) const{
  21.         if (russ_word_to_eng_word_.count((string)(source))){
  22.             return russ_word_to_eng_word_.at((string)(source));
  23.         }
  24.         return{};
  25.     }
  26.    
  27.     string_view TranslateBackward(string_view target) const{
  28.         if (eng_word_to_russ_word_.count((string)(target))){
  29.             return eng_word_to_russ_word_.at((string)(target));
  30.         }
  31.         return{};
  32.     }
  33.  
  34. private:
  35.     map<string, string> eng_word_to_russ_word_;
  36.     map<string, string> russ_word_to_eng_word_;
  37. };
  38.  
  39. void TestSimple() {
  40.     Translator translator;
  41.     translator.Add(string("okno"s), string("window"s));
  42.     translator.Add(string("stol"s), string("table"s));
  43.  
  44.     assert(translator.TranslateForward("okno"s) == "window"s);
  45.     assert(translator.TranslateBackward("table"s) == "stol"s);
  46.     assert(translator.TranslateForward("table"s) == ""s);
  47. }
  48.  
  49. int main() {
  50.     TestSimple();
  51.     return 0;
  52. }
  53. -----------------------------------------------------------------------
  54. my_assert.h
  55. -----------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment