Как решить проблему с исключением в моем коде?
Ошибка в недрах стандартной библиотеки. Вы в вашей программе что-то не так делаете и она падает. Это частая проблема в C/C++, можно допустить такие ошибки, что программа упадет. 

Вы уже открыли вашу программу в дебаггере. В правом нижнем углу вы видите стек. Первые 3 функции - это в недрах библиотеки. Вам тут ничего не понятно, поднимайтесь вверх. Ткните в четвертую строчку - там где Main().

Увидите, что ошибка происходит на строчке:
cout << morze.find( text[i] )->second <<"  ";

Проблема возникает при попытке обратиться к second у возвращенного значения. Но почему? Читайте ошибку: "cannot dereference end map/set iterator".

Т.е. find возвращает end() итератор. Действительно, посмотрите в документацию - map вернет end() если искомого ключа в нем нет.

Иправить ошибку просто - исправьте ваш код. Сначала присвойте переменной возвращенный из find итератор, и потом проверяйте, а не end() ли он. И только в противном случае выводите.

Я подозреваю, что символом оказался пробел. Пробела в вашем мапе morze нет, вот все и падает.
Читаем документацию: что возвращает std::map.find(). И что - может вернуть.