Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在映射c+中查找和打印对密钥+;_C++_Dictionary_Std Pair - Fatal编程技术网

C++ 如何在映射c+中查找和打印对密钥+;

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 = { {'

我正在尝试创建一个函数,该函数接受两个字符串并查找两者之间的编辑距离。现在我正在制作一张地图,里面几乎包含了键盘上所有的键,还有一对键给出了键的坐标,例如:q=(1,0)。现在我想知道如何在我的地图中找到一个特定的键,并打印它的坐标。我的最后一行代码没有得到这一对,正确的语法是什么

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;