我不能使用 int 作为键并将其绑定到 C++ 中的映射对反之亦然..为什么?

问题描述

这是我的代码片段...

'''

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        map<pair<int,int>,int>  m;
        m[{1,2}]=1;
        cout<<m[{1,2}];
        //  map<pair<int,pair<int,int> > k;
        //  k[{2,3}]=make_pair(1,2);
       //   cout<<k[{2,3}];
       map<int,int> > s;
       s[12]={1,23};
       cout<<s[12]<<endl;
    }

'''

现在,当我尝试将 pair 绑定到 int 时,它工作正常.. 但是当我反转它并尝试将 int 与 pair 绑定时,它失败了.. 并给出错误

13 11 D:\dec\cf\Untitled2.cpp [错误] 无法将 'std::ostream {aka std::basic_ostream}' 左值绑定到 'std::basic_ostream&&'

39 0 D:\dev c++\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\istream 从 D:/dev c++/Dev-Cpp/ 包含的文件中MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/istream

38 D:\dev c++\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\sstream from D:/dev c++/Dev-Cpp/MinGW64/lib/ gcc/x86_64-w64-mingw32/4.9.2/include/c++/sstream

45 D:\dev c++\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\complex from D:/dev c++/Dev-Cpp/MinGW64/lib/ gcc/x86_64-w64-mingw32/4.9.2/include/c++/complex

38 D:\dev c++\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\ccomplex from D:/dev c++/Dev-Cpp/MinGW64/lib/ gcc/x86_64-w64-mingw32/4.9.2/include/c++/ccomplex

52 D:\dev c++\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\x86_64-w64-mingw32\bits\stdc++.h 来自 D:/dev c++/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/x86_64-w64-mingw32/bits/stdc++.h

现在谁能告诉我为什么会发生这种情况,以及我可以做些什么来处理我需要将 int 与一对 int 绑定(例如在有向图中)并和平遍历的情况。

我也试过 s[12].first/s[12]->first 但没用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)