C++ C++;在映射中搜索元组错误:无法绑定';int';左值为';国际及&';

C++ C++;在映射中搜索元组错误:无法绑定';int';左值为';国际及&';,c++,stl,C++,Stl,我总是犯这个错误 #include <bits/stdc++.h> using namespace std; #define mt make_tuple<int,int> int main(){ map<tuple<int,int>,int> l; l[mt(5,4)] = 3; cout << l.count(mt(9,8)); } #包括 使用名称空间std; #定义mt make\u元组 int mai

我总是犯这个错误

#include <bits/stdc++.h>
using namespace std;
#define mt make_tuple<int,int>

int main(){
    map<tuple<int,int>,int> l;
    l[mt(5,4)] = 3;
    cout << l.count(mt(9,8));
}
#包括
使用名称空间std;
#定义mt make\u元组
int main(){
地图l;
l[mt(5,4)]=3;
cout>a>>b;

coutmake_tuple
的整个要点是让它为您推断元组的类型。如果您显式地指定
调用它,则会阻止正确进行推断

只要让
make_tuple
完成它的工作,不要仅仅因为想保存一些击键就定义宏,你会后悔的

int main(){
    std::map<std::tuple<int, int>, int> l;
    l[std::make_tuple(5,4)] = 3;
    int a,b;
    cin >> a >> b;
    cout << l.count(std::make_tuple(a,b));
}
intmain(){
地图l;
l[std::make_tuple(5,4)]=3;
INTA,b;
cin>>a>>b;

coutmake_tuple
的整个要点是让它为您推断元组的类型。如果您显式地指定
调用它,则会阻止正确进行推断

只要让
make_tuple
完成它的工作,不要仅仅因为想保存一些击键就定义宏,你会后悔的

int main(){
    std::map<std::tuple<int, int>, int> l;
    l[std::make_tuple(5,4)] = 3;
    int a,b;
    cin >> a >> b;
    cout << l.count(std::make_tuple(a,b));
}
intmain(){
地图l;
l[std::make_tuple(5,4)]=3;
INTA,b;
cin>>a>>b;

你的代码示例中的前三行是否包含足够多的错误实践来填补好几篇文章。我建议你尽快放弃这门竞争性编程教学的学士学位。你的代码示例中的前三行包含足够多的错误实践来填补好几篇文章。我建议你尽快放弃这门竞争性编程教学的学士学位。