1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <iostream>
#include <string>
#include <map>
using namespace std;
string t[] = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
string m[] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..",
".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",
"...-", ".--", "-..-", "-.--", "--.." };
int main()
{
map<string, string> morseToTextMap; // Create a map
map<string, string> textToMorseMap; // Create a map
map<string, string>::iterator iter; //Create an iterator to use on the maps. Because the maps
// are of the same type, map<string, string>, I can use the same
// iterator
// Build the map
for (int i=0;i<26; ++i)
{
morseToTextMap.insert(pair<string, string>(m[i],t[i]));
textToMorseMap.insert(pair<string, string>(t[i],m[i]));
}
// Get morse string to look for
string userInput;
cout << "Please enter morse letter to convert: ";
cin >> userInput;
iter = morseToTextMap.find(userInput);
if (iter != morseToTextMap.end())
{
cout << "OUTPUT: " << iter->second << endl;
}
else
{
cout << "Not found " << endl;
}
cout << "Please enter letter to convert: ";
cin >> userInput;
iter = textToMorseMap.find(userInput);
if (iter != textToMorseMap.end())
{
cout << "OUTPUT: " << iter->second << endl;
}
else
{
cout << "Not found " << endl;
}
return 0;
}
|