你好。它给出了一个难以理解的错误,如何解决它?截图: 这里是源代码:
string translator(string x, int language) {
string Return;
map <char, char> mapEng{{ 'q', 'й' },{ 'w', 'ц' },{ 'e', 'у' },{ 'r', 'к' },{ 't', 'е' },{ 'y', 'н' },{ 'u', 'г' },{ 'i', 'ш' },{ 'o', 'щ' },{ 'p', 'з' },{ 't', 'е' },{ '[', 'х' },{ ']', 'ъ' },
{ 'a', 'ф' },{ 's', 'ы' },{ 'd', 'в' },{ 'f', 'а' },{ 'g', 'п' },{ 'h', 'р' },{ 'j', 'о' },{ 'k', 'л' },{ 'l', 'д' },{ ';', 'ж' },{ '\'', 'э' },{ '\\', '\\' },
{ 'z', 'я' },{ 'x', 'ч' },{ 'c', 'с' },{ 'v', 'м' },{ 'b', 'и' },{ 'n', 'т' },{ 'm', 'ь' },{ ',', 'б' },{ '.', 'ю' },{ '/', '.' } };
switch (language) {
case 1:
for (int i = 0; i < x.length(); i++) {
char a = mapEng.find(x[i]);
Return += a;
}
case 2: break;
}
}
你试图得到的是提供一种方法
at
,而不是一种方法find
。那些。不是一个
您只需要记住,如果在
x[i]
中不存在mapEng
,则会引发异常。这是否适合您取决于您,因为从您的代码中不清楚您打算在这种情况下做什么。正如评论中已经说过的,结果
mapEng.find()
必须存储在迭代器中正确选项: