微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决我不能使用 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 举报,一经查实,本站将立刻删除。