Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -----------------------------------------------------------------------
- main.cpp
- -----------------------------------------------------------------------
- #include <string_view>
- #include <map>
- #include <cassert>
- #include <string>
- using namespace std;
- class Translator {
- public:
- Translator() = default;
- void Add(string_view source, string_view target){
- russ_word_to_eng_word_[(string)(source)] = target;
- eng_word_to_russ_word_[(string)(target)] = source;
- }
- string_view TranslateForward(string_view source) const{
- if (russ_word_to_eng_word_.count((string)(source))){
- return russ_word_to_eng_word_.at((string)(source));
- }
- return{};
- }
- string_view TranslateBackward(string_view target) const{
- if (eng_word_to_russ_word_.count((string)(target))){
- return eng_word_to_russ_word_.at((string)(target));
- }
- return{};
- }
- private:
- map<string, string> eng_word_to_russ_word_;
- map<string, string> russ_word_to_eng_word_;
- };
- void TestSimple() {
- Translator translator;
- translator.Add(string("okno"s), string("window"s));
- translator.Add(string("stol"s), string("table"s));
- assert(translator.TranslateForward("okno"s) == "window"s);
- assert(translator.TranslateBackward("table"s) == "stol"s);
- assert(translator.TranslateForward("table"s) == ""s);
- }
- int main() {
- TestSimple();
- return 0;
- }
- -----------------------------------------------------------------------
- my_assert.h
- -----------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment