C ++在地图中搜索元组错误:无法将'int'左值绑定到'int &&'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++在地图中搜索元组错误:无法将'int'左值绑定到'int &&'相关的知识,希望对你有一定的参考价值。

我总是得到这个错误。

#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));
}

1.我应该更改什么来接受我的文件中的值? 2.错误在哪里?

int main(){
    map<tuple<int,int>,int> l;
    l[mt(5,4)] = 3;
    int a,b;
    cin >> a >> b;
    cout << l.count(mt(a,b));
}
答案

make_tuple的全部意义在于它为你演绎了元组的类型。如果您明确指定<int, int>调用它,则可以防止正确进行演绎。

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));
}

live example on wandbox.org

以上是关于C ++在地图中搜索元组错误:无法将'int'左值绑定到'int &&'的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose TypeError:TypeError:无法使用“in”运算符在未定义中搜索“pluralization”

Jquery - 未捕获的类型错误:无法使用“in”运算符在中搜索“324”

未捕获的类型错误:无法使用“in”运算符在未定义中搜索“scrollLeft”

未捕获的类型错误:无法使用“in”运算符在 JSON 字符串中搜索“”

未捕获的类型错误:无法使用“in”运算符在未定义的 vue 路由器中搜索“路径”

未捕获的类型错误:无法使用“in”运算符在 null 中搜索“SUPPORT_COOKIES”