C++ 如何在映射c+中查找和打印对密钥+;
我正在尝试创建一个函数,该函数接受两个字符串并查找两者之间的编辑距离。现在我正在制作一张地图,里面几乎包含了键盘上所有的键,还有一对键给出了键的坐标,例如:q=(1,0)。现在我想知道如何在我的地图中找到一个特定的键,并打印它的坐标。我的最后一行代码没有得到这一对,正确的语法是什么C++ 如何在映射c+中查找和打印对密钥+;,c++,dictionary,std-pair,C++,Dictionary,Std Pair,我正在尝试创建一个函数,该函数接受两个字符串并查找两者之间的编辑距离。现在我正在制作一张地图,里面几乎包含了键盘上所有的键,还有一对键给出了键的坐标,例如:q=(1,0)。现在我想知道如何在我的地图中找到一个特定的键,并打印它的坐标。我的最后一行代码没有得到这一对,正确的语法是什么 map<char, pair<int,int>> mapsetup(){ map<char, pair<int, int>> keyMap = { {'
map<char, pair<int,int>> mapsetup(){
map<char, pair<int, int>> keyMap = {
{'1',make_pair(0,0)},{'2',make_pair(0,1)},{'3',make_pair(0,2)},{'4',make_pair(0,3)},{'5',make_pair(0,4)},{'6',make_pair(0,5)},{'7',make_pair(0,6)},
{'8',make_pair(0,7)},{'9',make_pair(0,8)},{'0',make_pair(0,9)},{'q',make_pair(1,0)},{'w',make_pair(1,1)},{'e',make_pair(1,2)},{'r',make_pair(1,3)},
{'t',make_pair(1,4)},{'y',make_pair(1,5)},{'u',make_pair(1,6)},{'i',make_pair(1,7)},{'o',make_pair(1,8)},{'p',make_pair(1,9)},{'a',make_pair(2,0)},
{'s',make_pair(2,1)},{'d',make_pair(2,2)},{'f',make_pair(2,3)},{'g',make_pair(2,4)},{'h',make_pair(2,5)},{'j',make_pair(2,6)},{'k',make_pair(2,7)},
{'l',make_pair(2,8)},{';',make_pair(2,9)},{'z',make_pair(3,0)},{'x',make_pair(3,1)},{'c',make_pair(3,2)},{'v',make_pair(3,3)},{'b',make_pair(3,4)},
{'n',make_pair(3,5)},{'m',make_pair(3,6)},{',',make_pair(3,7)},{'.',make_pair(3,8)},{'/',make_pair(3,9)}
};
return keyMap;
}
int main(){
map<char, pair<int,int>> mapt = mapsetup();
string target, typo;
cout << "Enter target string" << endl;
getline(cin, target);
cout << "Enter typo string" << endl;
getline(cin, typo);
cout << mapt.find('a')->second << endl;
}
map-mapsetup(){
映射键映射={
{'1',make_对(0,0)},{'2',make_对(0,1)},{'3',make_对(0,2)},{'4',make_对(0,3)},{'5',make_对(0,4)},{'6',make_对(0,5)},{'7',make_对(0,6)},
{'8',make_对(0,7)},{'9',make_对(0,8)},{'0',make_对(0,9)},{'q',make_对(1,0)},{'w',make_对(1,1)},{'e',make_对(1,2)},{'r',make_对(1,3)},
{'t',make_pair(1,4)},{'y',make_pair(1,5)},{'u',make_pair(1,6)},{'i',make_pair(1,7)},{'o',make_pair(1,8)},{'p',make_pair(1,9)},{'a',make_pair(2,0)},
{'s',make_对(2,1)},{'d',make_对(2,2)},{'f',make_对(2,3)},{'g',make_对(2,4)},{'h',make_对(2,5)},{'j',make_对(2,6)},{'k',make_对(2,7)},
{'l',make_pair(2,8)},{';',make_pair(2,9)},{'z',make_pair(3,0)},{'x',make_pair(3,1)},{'c',make_pair(3,2)},{'v',make_pair(3,3)},{'b',make_pair(3,4)},
{'n',make_-pair(3,5)},{'m',make_-pair(3,6)},{',',make_-pair(3,7)},{''',make_-pair(3,8)},{'/',make_-pair(3,9)}
};
返回键图;
}
int main(){
map mapt=mapsetup();
字符串目标,输入错误;
cout在这一行:
cout << mapt.find('a')->second << endl;
这是一个例子
或者,您可以重载运算符。您的问题是什么?代码是否编译?它是否做了错误的事情?如果您遇到编译器错误,您应该将其添加到问题中。
auto i = mapt.find('a');
cout << i->second.first << " " << i->second.second << endl;
ostream& operator<<(ostream &out, const pair<int, int> &p) {
return out << p.first << " " << p.second;
}
cout << mapt.find('a')->second << endl;